2011-08-22 26 views

回答

2

您是否在尋找hg manifest --debug?它用相應的nodeID打印當前修訂版本中的所有文件。

$ hg man --debug | head 
9d2ea05fa708cb035dc716c071f0ad00c3449e1e 644 .hgignore 
5199ce4ea50cd49c1757bf113c9239f4bf9e9de6 644 .hgsigs 
6a6af229d3f6ce57cb7602f807069bf4f5febb32 644 .hgtags 
7c8afb9501740a450c549b4b1f002c803c45193a 644 CONTRIBUTORS 
02c5479e672e6a43116c48889101884f4b07ec25 644 COPYING 
0fd39b23c59f01ef46a2805f1e9b8529246ea294 644 Makefile 
780f5a706681ff4efab75c2beae6ee56f710a50b 644 README 
+0

謝謝。正是我需要的:) – Geo

3

Mercurial在內部工作不同。你可以看到的是「changeset」的哈希值 - mercurial中沒有對象的「樹」,只是很多帶有一系列變更集的文件。

hg log允許您查看散列和相關文件。在你的情況下,如果你需要文件列表,那將是hg log -r -2(顯示第二次提交)或hg log -r -2 -v

+0

我需要使用API​​來獲取散列嗎?我想做一個腳本來告訴我一個文件在哪個版本中。例如:我將文件恢復到第二次提交,運行腳本並查看修訂版。 – Geo

+0

只是爲了確保我們談論的是同樣的事情:在Mercurial中,您使用'hg update'將文件更新爲某個修訂版。使用'hg log --template「{node}」--limit 1 -r' * revision * * filename *來獲取文件特定版本的散列。無需「恢復」。而不是回覆/更新,看看'hg qimport'可以從最後幾次提交中創建一個補丁。 –

相關問題