subrepositories我有subrepositories許多項目:如何合併一個特性分支爲默認與水銀
/project <- Main repository
/project/src <- Source code subrepository (subrepository to /project)
/project/src/module <- Module subrepository (subrepository to /project/src repository)
我現在已經有幾個版本特性分支(特徵1)工作,我現在想要合併回默認分支。自從特性1分支被創建以來,默認分支沒有任何變化。
我已經嘗試將分支合併到默認值,但最終發生在子庫中的一些奇怪的事情。
我已經按照這個other post的說明,並得到下面的結果:
$ hg checkout default
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ hg merge feature1
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)
$ hg status -S
M .hgsubstate
$ hg commit -S -m "branch merge test"
nothing changed
$ hg branches
default 19:c2398dc23428
feature1 17:98dc0efbad90 (inactive)
什麼奇怪的是,儘管很多文件都在模塊 subrepository改變,合併只說1文件已更新。我假設這恰好是.hgsubstate。
當我明確地更新subrepository,然後我得到如下:
$ cd src/module
$ hg update
39 files updated, 0 files merged, 23 files removed, 0 files unresolved
$ cd ../..
$ hg commit -S -m "feature1 merge"
committing subrepository src
$ hg status -S
M .hgsubstate
這樣做汞柱更新把所有的修改到工作目錄後,我看到了模塊中的變化我需要提交的subrepository。但是,.hgsubstate始終保持修改狀態。我試過hg刪除。我試過hg忘記。但是不管我做什麼,當我做hg狀態時它仍然被標記。
所以我的問題是:
- 當時我走上合併在正確的分支(考慮subrepositories存在)的過程?
- 是否需要在子庫中執行hg更新以使主存儲庫能夠識別更改?
- 爲什麼.hgsubstate行爲不端?