2015-10-27 47 views
1

我有一個堅固的樹對象,我想知道它的路徑(相對於根)是什麼,當樹寫入時它是什麼commit ID。例如:Rugged:樹的路徑和commit_id

tree = repo.lookup '7892eeee70c08fae4db63aef7000dea39f883b30' #sha/oid of tree 

我應該在這個樹對象上執行哪些操作,以便獲取其路徑並提交id?

回答

1

該信息並未存儲在樹中。 Git使用Merkle樹,父母知道子樹是什麼,但每棵樹都可以包含在多次提交中(這是典型的情況,因爲一些subdirs很少被觸及)。

如果這些目錄具有相同的內容,也可以通過許多不同的路徑訪問樹。

找出樹所屬的唯一方法就是去查看每個提交,並從根查找是否可以找到您提供的樹。這將是一個非常昂貴的操作。

我會建議你退後一步,弄清楚爲什麼你認爲你需要弄清楚可以從哪裏找到一棵樹。這聽起來像是你已經決定了很多步驟,並且你正在詢問一個細節,你應該從更高的層面來看待它。