簡體   English   中英

如何找到git commit所在的分支? (使用libgit2sharp)

[英]How to find the branch a git commit is on? (Using libgit2sharp)

對於一個研究項目,我一直在嘗試復制版本控制軟件(如SourceTree或TortoiseGit)中存在的圖形視圖。

我正在嘗試實現的圖形視圖 我正在嘗試實現的圖形視圖

我遇到的最大問題是查找提交屬於哪個分支。 如果有,我可以為提交點分配一列和一種顏色。 這很困難,因為在后台,Git不會存儲提交最初所在的分支。

查看StackOverflow上的其他解決方案,我發現可以獲取包含提交的分支列表,但是我需要一種隔離單個分支的方法以在圖形中顯示。 以相同的方式,SourceTree或TortoiseGit設法做到了。

我的問題也與此相同,在LibGit2Sharp中找出提交屬於的分支嗎?

看來他們在私人討論室中找到了實際的解決方案。 但是,我沒有發表評論並詢問他們發現了什么的聲譽。

有人對我該怎么做有任何想法嗎?

或者,如果您偶然看到並記住了@nulltoken,您知道你們在那個討論室中發現了什么嗎?

不確定此答案對您有多大幫助。 LibGit2Sharp等同於“ git branch --contains $SHA1 ”的調用是GitHub上的一項請求功能, 是一個開放的功能!

很久以前,我對所有這樣的ref使用查詢 ,但是對於您的用例來說,它可能會非常慢。

我正在嘗試尋找減輕此問題的可能方法,無法提出任何指導意見。 :(然后,我發現了此注釋該注釋斷言您需要遍歷DAG並驗證具有提交的實際分支。所有這些都表明您需要采用慢速遍歷所有引用方法。

原來是生成圖,SourceTree不需要知道提交在哪個分支上。

圖中的第一個提交始終具有0列。此外,還可以獲取給定提交的父提交列表。 通過從第一次提交開始並向后迭代,他們可以僅通過使用此信息來生成漂亮的圖形。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM