2011-11-22 91 views
16

Plone的項目包括192個不同的回購項目:https://github.com/plone/使用Git與許多,許多回購

在開發過程中,有時2個或4個或10次不同的回購將需要被感動修復bug或實現特徵。這將是巨大的,如果所有這些可以被支鏈在一起,併合並在一起(例如,拉動請求關閉issueX含有承諾repo1repo2repo3)。

唱片集需要回購的整個集合要被分支和標記在一起。

預混帳,釋放被一個文件,列出所有構成釋放模塊的SVN版本號定義。 git能否給我們更簡單的工作方式?

乍一看,這似乎是「Superprojects」可能適用:

你可以更具體地定義在superprojects

http://progit.org/book/ch6-6.html#superprojects與標籤和分支的 項目之間的關係。「 Git/Submodules和Superprojects「似乎證實了這一點,但仍然模糊(不涉及標籤或分支)。 http://en.wikibooks.org/wiki/Git/Submodules_and_Superprojects

另一個工具聽起來相關的是喬伊赫斯的mr

的MR(1)命令可以檢出,更新或如同它們是一個組合的程序存儲庫的版本庫的一組 執行其它動作。

http://kitenet.net/~joey/code/mr/(我會擔心,這將導致192個不同的分支碰巧具有相同的名稱,而不是1個分支是結合所有的回購在一起。)

這個問題看上去相關:Is anyone really using git super/subprojects?答案之一規定:

我們的項目(bitweaver,內容管理系統)是一個高度模塊化 系統,擁有近160庫 - HTTP:// github.com/bitweaver/」

這聽起來像我們的情況。它引用了子模塊的「嚴重限制」,並建議mercurial。聽起來像mr可以幫助處理這些(「執行超級回購中的所有目錄的git命令」)。

+1

即使這是一個非常有趣的討論,它已經在Plone的郵件列表最近事情(搜索有關http://plone.org/support/forums「混帳」),不幸的是你的問題是不是一個真正的問題。所以請參與適當的ml討論。 –

+0

我正在參加那裏的討論。你爲什麼認爲這個問題不是真的?你認爲有沒有通用的方式來使用git進行許多回購項目? –

+0

不要誤解我的意思,我的觀點並不是問題所在。我的觀點是,「你應該只根據你面對的實際問題提出切實可行的答覆問題。聊天,開放式問題會降低我們網站的實用性,並將其他問題推到首頁」(http://stackoverflow.com/FAQ#dontask)。 –

回答

0

我會在一個「全」回購使用git子模塊。另外,如果您發現跨越多個回購站的工作,請考慮「git奴隸」。這可以節省很多努力。

+2

Wichert Akkerman在郵件列表上回複道:「(a)[子模塊]在我的經驗中很難使用,而且記錄不完整,我不認爲自己是一個完全白癡,但我從未能夠更新(b)設計子模塊指向一個單獨的提交而不是一個分支,這意味着它們不是一個分支,這意味着它們不是一個分支,這意味着它們不是一個分支對於不斷更新的代碼非常有用,這可能會在未來的git版本中修復,但現在對我們無幫助。「 –

+0

他們沒那麼糟糕。我每天都使用它們,沒有任何問題。隨時可以在需要幫助時隨時通知我。無論您使用的是什麼工具,版本控制功能都是不平凡的。 –

+0

@JeanJordaan沒有辦法將文件更新到更新的版本,而無需進行編輯。要將子模塊更新到更新的版本,只需將它「cd」到它的目錄,然後僅僅是「git checkout ...」。子模塊指向提交而不是分支是個好主意,因爲分支可以改變 - 「今天我檢出了這個項目它剛剛崩潰,但自3個月以來我沒有改變任何東西,可能這個子模塊是指分支,但我不知道在我們停止開發之前我們最後測試了哪個版本「 – MBO

1

爲什麼不來看看the repo tool,這些會用來搭載Android?

+0

這看起來很有趣。 Android使用'repo',bitweaver使用'supergit','mr'也聽起來類似。 –