2009-09-27 33 views
5

我有一個項目合併了多個hg倉庫(不同組件)來構建單個應用程序。我正在尋找一個跨平臺的工具來支持同時在多個倉庫中執行一個操作(例如,標籤,拉,推,提交等等)。基本上,我正在尋找Google的'repo'腳本寫爲Android,但汞,而不是混帳:有沒有人有腳本一次處理多個hg存儲庫?

http://source.android.com/download/using-repo

我搜索了堆棧溢出,發現這個:

mercurial windows batch file for pulling changes to multiple repositories

但它仍然是一個有點手冊和僅適用於Windows。我知道這不是難以編寫腳本來將命令傳遞給回購站或嘗試封裝所有內容,但認爲這可能是常見的事情,所以也許其他人已經有一個解決方案。我想一種方法是將repo腳本移植到hg(對於簡單的操作,查找和替換gg可能會相當不錯)。

其他人在這種情況下做什麼?

回答

5

絕對看看Mercurial中的新版本(1.3版本)子庫功能。它可以讓您擁有一個包含其他存儲庫的整體存儲庫。頂層的狀態包含一個文件,指定子回購的提示的散列,因此您可以有效地指定一個包含所有從屬回購的狀態的散列節點id。

https://www.mercurial-scm.org/wiki/subrepos

+0

謝謝,我一定會繼續它的眼睛。不要以爲我就可以調整我們的回購使用一個「實驗性」的功能相當,所以我可能會投資的10分鐘黑客一起快速腳本。 – Brian 2009-10-01 05:51:38

+0

FWIW,subrepos是非常標準的使用了。 – 2011-01-18 07:33:39

1

我已經在類似的情況在過去的一年,一個項目分佈在6個倉庫的日常工作,並作爲負責大部分一個分支/合併的東西等

在某些時候,我發現了一個簡單的bash腳本檢查多個SVN回購。我將它採用到Mercurial並隨着時間的推移而延長。現在我不記得或谷歌腳本的原始來源,所以我不能記得原作者(如果我稍後找到信息將在我的腳本中得分)。

我「hgall」的劇本是在https://github.com/JKrag/hgall

在GitHub上公佈它爲我所用製造,從而直接引用了我一直在使用了一些擴展,但可以被輕鬆地編輯了。 (或者只是不要使用調用你沒有安裝的擴展的命令)。

該腳本記錄在自述文件中,包括我個人的「調整」(默認情況下)忽略以下劃線開頭的回購,因爲我使用這些作爲臨時克隆來測試雜亂的操作(例如大合併)。

我希望這個腳本是一些你有用 - 它一直是在過去一年中對我幫助很大。我們公司剛搬到混帳,所以我很可能不會作出在不久的將來,許多更新,但有可能會被它移植到Git有一天....

相關問題