我一直在想我理解subrepos以及如何讓它們適用於我的團隊工作流程,但顯然我不這樣做,因爲每次嘗試實施某些基本工作流程時,都不會結束工作的權利。保持Subrepos在中央服務器上同步
我已經閱讀了幾乎所有關於subrepos在線閱讀的內容,並且我遵循所有人們發佈的簡單示例,但是當我嘗試做更復雜的事情時。或者,也許我確實很好地理解了這一點,而我正在努力做的事情並不是很好。
讓我們瞭解一些基本知識。可以說我有一個偏遠的「有福」的回購收藏。
http://acme.com/BlessedRepos/ProjA
/LibA
/LibB
所以我做的一個/ProjA
克隆C:\ProjA
和克隆/LibA
到C:\ProjA\LibA
和/LibB
至C:\ProjA\LibB
。我創建我的.hgsub
文件與
LibA = http://acme.com/BlessedRepos/LibA
LibB = http://acme.com/BlessedRepos/LibB
我承諾一切。然後我可以推ProjA
,一切都很好。
所以,現在有人在我的球隊可以去克隆/PrjoA
到C:\dev\ProjA
,它會拉低LibA
和LibB
也爲subrepos。這個人可以像我一樣輕鬆地從「幸福回購」推出/拉出。迄今爲止很好。
現在,我說:好的,ProjA團隊,不要再推薦那些有福的回購,這對我來說是在回顧完你的工作之後做的。從現在開始,我希望大家把你的更改ProjA開發和QA ProjA遠程回購位於:
http://acme.com/Dev/ProjA
http://acme.com/QA/ProjA
這是我們停下來。試圖推到http://acme.com/Dev/ProjA
只會推/ProjA
,而/ProjA/LibA
和/ProjA/LibB
被推回到原來的位置,在祝福回購,而不是所期望的位置http://acme.com/Dev/ProjA
。
現在,我可以將我的.hgsub
文件設置爲LibA = ../LibA
。這將開始工作,但如果我是從福地回購做ProjA
克隆,它未能得到LibA
或LibB
,我相信,因爲它希望找到當地的回購LibA
和LibB
作爲兄弟到ProjA
回購我克隆。我的意思是,如果我將其複製到http://acme.com/BlessedRepos/ProjA
到C:\Test\ProjA
它將失敗,因爲它預計會在C:\Test\LibA
處找到現有的回購站。
我也可以設置我的hgsub爲LibA = LibA
。但是,當你嘗試推向幸福回購時,這樣做會失敗,因爲LibA
不是在受祝福的空間中嵌套的ProjA
。我可以創建它們,但是我永遠不會推回到http://acme.com/BlessedRepos/LibA
,只能到http://acme.com/BlessedRepos/ProjA/LibA
,然後它似乎已經擊敗了subrepo開始的目的。
我敢肯定,我的第一種方法可以工作,如果我也有一些腳本,我會運行,並將.hgsub
文件中的所有值從「有福」的遠程位置更改爲「開發」和「質量保證」地點,但這似乎不太理想。
所以。如果有人在那裏真的掏出這些東西,你可以向我解釋我出錯的地方,或者我可以使用subrepos來實現我的原始工作流程,或者只是確認我正在追求的東西不是非常適合subrepos。如果有助於瞭解情況,我們可能有15-20個「產品/解決方案」和50個「共享」項目。 15-20種產品中的任何一種都可以利用其解決方案中的50個共享項目中的N個。
可能的副本[在克隆中進行更改時保持Mercurial子庫的最新工作流程是什麼?](http://stackoverflow.com/questions/7270810/what-is-the-workflow-to-keep -mercurial-subrepositories,先進的日期時,改變-AR) –