我需要獲取方法列表的作者。
我試圖通過使用LibGit2Sharp比較方法名和補丁內容來做到這一點,但它太長了,還有很多提交。
我想快速做到這一點,不知何故像代碼鏡頭。
現在我試圖通過自己的VS插件獲取它,可能有一些easyer方法。
謝謝。獲取方法的作者,如codelens
0
A
回答
0
看看git blame filename
輸出。看來這個LibGit2Sharp supports。如果您知道方法開始和結束的行號,可以運行它以獲得特定方法。通過運行git blame -L 1,10 filename
,您將看到文件中最後一次變化的行1-10。
0
有由非搜索的代碼示例:
var blames = repo.Blame(parameters.FilePath.Replace(_repository, ""));
var commitDate = DateTime.Now;
foreach (var blame in blames)
{
if (blame.InitialCommit.Sha != (blame.InitialCommit.Parents.FirstOrDefault() == null ? blame.InitialCommit.Sha : blame.InitialCommit.Parents.First().Sha) &&
(!blame.InitialCommit.Message.ToLower().Contains("merge")))
{
Tree commitTree1 = repo.Lookup<LibGit2Sharp.Commit>(blame.InitialCommit.Sha).Tree;
Tree commitTree2 = repo.Lookup<LibGit2Sharp.Commit>(blame.InitialCommit.Parents.FirstOrDefault() == null ? blame.InitialCommit.Sha : blame.InitialCommit.Parents.First().Sha).Tree;
string content = repo.Diff.Compare<Patch>(commitTree1, commitTree2).Content;
if (content.Contains(parameters.TestName))
{
if (commitDate.CompareTo(blame.InitialSignature.When.Date) > 0)
{
commitDate = blame.InitialSignature.When.Date;
author = string.Format("Email: {0}; Name: {1}", blame.InitialCommit.Author.Email, blame.InitialCommit.Author.Name);
}
}
}
}
相關問題
- 1. C#中獲取方法的調用者#
- 2. 獲取對方法調用者的引用的一般方法?
- 3. React獲取狀態提供者方法
- 4. 獲取作者的名字
- 5. CodeLens爲什麼總是顯示「0作者,0更改」?
- 6. 如何擴展CodeLens
- 7. 如何獲取此方法的調用者類
- 8. 獲取文件所有者/作者
- 9. 報價註解者獲取作者
- 10. 在Wordpress中獲取作者的作用
- 11. 獲取作者ID在wordpress
- 12. 隨機獲取作者
- 13. 如何獲取PySpark中工作者(執行者)的數量?
- 14. 無法獲取FB.ui方法:oauth工作
- 15. 從工作者進程中獲取工作者的ID
- 16. 作者頁面獲取作者的帖子和頁面
- 17. WordPress的獲取作者ID的帖子
- 18. Codelens忽略類
- 19. 從Box API獲取協作者身份詳情的任何方法?
- 20. 如何關閉CodeLens-參考
- 21. 無法獲取頒發者證書/無法獲取本地頒發者證書
- 22. 獲取方法
- 23. WordPress的 - 獲取作者圖片
- 24. 獲取Word文檔的作者,VBA
- 25. 獲取gunicorn工作者的數量?
- 26. 如何獲取findElementById方法?
- 27. 如何獲取類方法?
- 28. 從AsyncTask獲取結果給調用者類的最佳方法
- 29. Coldfusion EntityLoad獲取方法未找到,但使用EntityLoadByPK時獲取方法工作
- 30. 從動作委託獲取方法名
責備不起作用完美。 有時它不能得到初始提交。 – FeniXVRN
不幸的是,我沒有安裝VS 2013 Ultimate,因此無法使用codelens功能進行實驗,以查看它究竟如何找到方法的作者。我唯一的假設是,它針對特定的文件行運行'git blame',然後尋找這些行中最受歡迎的編輯器。 –
感謝您的想法,我發現git log --follow更正確:) – FeniXVRN