6
A
回答
2
這可能是可能的,但有點棘手。你必須基本寫你自己的tag
實用程序(也許作爲一個Mercurial擴展),以幫助收集所需的額外信息並對hg tag
進行額外的調用。但是,在編寫擴展時,我對API沒有太多瞭解,所以我提供的任何想法都將基於直接使用命令調用hg
。
默認情況下,當您在主存儲庫上提交時,首先提交子存儲庫。然後,它需要新的變更ID爲每個subrepo並把它們在.hgsubstate
文件中這樣的格式:
77ba00000fe8e9ca033d97dc07b85a50dd106837 nested
遞歸標籤將需要得到.hgsubstate
文件的內容,因爲它是在變更你正在主存儲庫中進行標記。你可能會想到hg revert
,但這不是一個好主意,因爲它可以很容易地清理你的工作目錄(hg
不喜歡在.hgsubstate
上執行它)。你最好的選擇是修改hg export
,並解析.hgsubstate
文件中+
行的結果差異。
然後,您將從每個這些人中獲取changset id和subrepo名稱,以便撥打hg -R <subrepopath> tag -r <id> <tag>
。當然,最後標記主要回購。
這仍然有潛在的問題,你必須保持意識或弄清楚如何生活。例如:如果您在主要的回購倉庫中承諾但不在一個或多個subrepos上會發生什麼情況?現在,您在主要回購庫上有多個變更集,其中.hgsubstate
在子索引中列出了相同的變更集標識。因此,如果您在主repo上標記兩個變量,則subrepo上的變更集將包含2個標籤。
我正在使用TortoisHg 2.0.5 w/Mercurial 1.8.4。自行標記子庫不會產生任何需要在主庫上進行提交的情況,它應該大部分工作正常。
相關問題
- 1. 遞歸cte - 標記所有葉子
- 2. 使Mercurial存儲庫中的.hgignore可供所有subrepos使用?
- 3. 如何將現有的Mercurial存儲庫轉換爲使用子存儲庫並保持歷史記錄不變?
- 4. SQL:遞歸地選擇所有子記錄的總和
- 5. 移動本地Mercurial存儲庫到Bitbucket
- 6. Mercurial本地存儲庫備份
- 7. 全局指定所有Mercurial存儲庫的用戶名?
- 8. 遞歸地使用XPath遞歸地選擇子節點?
- 9. 具有bitbucket子庫的Mercurial存儲庫 - 如何防止推送
- 10. mysql存儲過程不一致地遞增所有記錄
- 11. 如何使用本地託管的rhodecode mercurial git存儲庫
- 12. 使用Mercurial將本地克隆推送到遠程存儲庫
- 13. 如何備份本地Mercurial存儲庫並使用rebase?
- 14. 如何在中央CVS存儲庫本地使用mercurial?
- 15. 有沒有辦法使用Mercurial存儲庫作爲Git子模塊? (更新)
- 16. 適用於本地存儲庫的Node.js Mercurial HG庫
- 17. JSP標記遞歸
- 18. FTP上的Mercurial存儲庫
- 19. Mercurial分佈式存儲庫
- 20. 「零」一個mercurial存儲庫
- 21. Clone Mercurial存儲庫到public_html
- 22. 優化Mercurial存儲庫
- 23. Mercurial提交新存儲庫
- 24. 更改爲mercurial存儲庫
- 25. 移動Mercurial存儲庫
- 26. Mercurial儲存庫架構
- 27. 使用存儲過程的SQL遞歸
- 28. 將具有子模塊的git存儲庫轉換爲Mercurial?
- 29. xslt如何遞歸地更改子節點的標記名稱
- 30. 關於Mercurial Security +子庫的遞歸簽名