我想在特定的提交ID或時間後使用它們的變更集提取所有提交。是否有任何直接的方式來使用Mercurial API來做到這一點?如何獲取特定時間範圍之間或某個修訂版本或提交id之後的修訂歷史記錄直至使用Mercurial API的最新版本?
2
A
回答
1
正如您可能知道的,Mercurial的no stable Python-level API。命令行是唯一支持的API(除非使用像JavaHg或python-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
。
相關問題
- 1. SVN更新修訂歷史記錄中的修訂版本
- 2. Git:如何在特定修訂版本之間獲取文件
- 3. 如何獲取2 svn修訂版之間的提交信息?
- 4. 如何使用Mercurial從特定修訂版克隆到最後一個版本?
- 5. 保持svn文件夾之間的修訂歷史記錄
- 6. 如何刪除兩個修訂版本號之間的文件提交?
- 7. 開發文件的本地歷史記錄/修訂版
- 8. svn比較版本的修訂範圍
- 9. 如何使用SVNKit獲取特定文件的修訂版本?
- 10. Subversion通過修訂版本分割存檔歷史記錄
- 11. 如何在特定日期或日期範圍內獲取SVN修訂版號
- 12. 如何在修訂版本中獲取更新特定文件?
- 13. 如何從SVN之前獲得HEAD之前的修訂版本?
- 14. 獲取具體修訂範圍之間的日誌提交消息GIT
- 15. SVN修訂版本號和時間戳
- 16. 如何在每個文件的修訂版本之間創建修補程序?
- 17. 如何在SharpSVN中獲取頭文件或最後提交文件修訂版
- 18. 修訂版本與版本
- 19. Git svn clone:如何推遲修訂歷史記錄的提取
- 20. 如何查看Mercurial文件的修訂歷史記錄?
- 21. 如何僅向某個克隆版本庫提交某些修訂版
- 22. 如何在mysql中獲取最新的行(post)修訂版本?
- 23. 在修訂版A和B之間列出鍵git提交
- 24. 查看perforce之間的修訂版本中刪除的文件
- 25. 修訂歷史和修訂
- 26. git diff - 忽略修訂版本之間的所有換行
- 27. 問題:讓我們回到修改和修訂提交的最新修訂版
- 28. 如何獲取聯繫人的版本或修改時間?
- 29. Etcd v2修訂版/版本
- 30. 如何獲取歷史修訂中特定行的行號?