2010-04-16 80 views
2

我最近從Subversion切換到Mercurial進行源代碼控制,並且這樣做已經將一個存儲庫分成了幾個。我使用subrepos來管理存儲庫之間的依賴關係。問題在於pull不是suprepo意識到的,所以我必須進入每個subrepo並且更改以更新存儲庫。有一個更好的方法嗎?如何獲取更改以傳播到Mercurial中的所有subrepos?

回答

0

拉不suprepo知道

hg pull應subrepo意識到,只要它是用來與-u--update)選項。

hg update應,當它comes to subrepos,將其考慮在內:

每當新版本的Mercurial更新工作目錄時遇到此.hgsubstate文件,他們會試圖把指定subrepos並更新他們適當的狀態。

Subrepos也可能包含自己的subrepos,Mercurial將根據需要進行遞歸。


OP CoreyD補充說:

這並沒有爲我工作。
我創建兩個回購/repo/sub和我克隆到回購(/repo/sub)。
然後我創建一個.hgsub文件在/repo與這樣一行這樣的sub = ../sub並提交它。
當我對/sub進行更改,然後在/repo /repo/sub中進行更新時未更改。
我做錯了什麼?

這看起來大約右:
SubRepos或子模塊(GIT中)都是關於referening一個精確配置(變更REF爲HG,或提交REF GIT中,如在本SO question解釋)

當你改變以外的/repo,你不會改變.hgsubstate文件/repo記錄確切的配置(變更參考)。
因此完全沒有改變。

您可以直接在/repo/sub中直接更改/sub,提交它們,然後提交/repo
然後/repo的克隆將具有新配置。

+0

這並沒有爲我工作。我創建了兩個repos/repo和/ sub,並將其克隆到repo(/ repo/sub)中。然後我在/ repo中創建一個.hgsub文件,這個行就像這個sub = ../sub並提交它。當我對/ sub進行更改時,然後在/ repo/repo/sub中更新不變。難道我做錯了什麼? – CoreyD 2010-04-16 18:20:15

+0

@CoreyD:我剛剛完成了我的答案,以更好地解釋爲什麼更新沒有更改。我在編輯的答案(http://stackoverflow.com/questions/1979167/git-submodule-update/1979194#1979194)中提到的問題與Git有關,但仍然很重要,因爲SubRepo的真正目的/子模塊在那裏描述。 – VonC 2010-04-16 19:10:34

相關問題