2011-12-15 25 views

回答

1

正如您可能知道的,Mercurial的no stable Python-level API。命令行是唯一支持的API(除非使用像JavaHgpython-hglib這樣的包裝庫)。因此,在命令行上

你會跑

$ hg log -r "ID::" 

ID後能得到的所有的變更。 ::運營商給你的後代,如果你只是想要更高版本號的變更集,使用ID:,即使它們不是ID的後代。

使用JavaHg,你會實例化一個Repository對象,並使用LogCommand

List<Changeset> changesets = LogCommand.on(repo).rev(id + "::").execute(); 

然後,您可以通過changesets列表進行迭代。與Python-hglib它看起來像

changesets = client.log(id + "::") 

最後,如果您導入水銀代碼直接,你可以做

ctxs = repo.set(id + "::") 

得到一個迭代器產生changectx對象。雖然我們對Python API沒有提供任何保證,但我預計這也會非常穩定。

上述內容專注於通過變更集ID或修訂版號查找。如果您想按日期查找,那麼你就需要調用

$ hg log -d '>YOUR-DATE' 

相當於在JavaHg你可以只使用date(String date)方法上LogCommand,在python-hglib您設置的date關鍵字參數,並在內部您使用date revset謂詞 - 請參閱hg help revsets

相關問題