merge with stable

This commit is contained in:
Benoit Boissinot 2010-01-15 21:32:53 +01:00
commit ef2921d9e6
3 changed files with 96 additions and 1 deletions

View File

@ -231,9 +231,12 @@ class hgsubrepo(object):
self._get(state)
cur = self._repo['.']
dst = self._repo[state[1]]
if dst.ancestor(cur) == cur:
anc = dst.ancestor(cur)
if anc == cur:
self._repo.ui.debug("updating subrepo %s\n" % self._path)
hg.update(self._repo, state[1])
elif anc == dst:
self._repo.ui.debug("skipping subrepo %s\n" % self._path)
else:
self._repo.ui.debug("merging subrepo %s\n" % self._path)
hg.merge(self._repo, state[1], remind=False)

View File

@ -109,4 +109,56 @@ echo % bogus subrepo path aborts
echo 'bogus=[boguspath' >> .hgsub
hg ci -m 'bogus subrepo path'
echo % issue 1986
cd ..
rm -rf sub
hg init main
cd main
hg init s # subrepo layout
cd s #
echo a > a # o 5 br
hg ci -Am1 # /|
hg branch br # o | 4 default
echo a >> a # | |
hg ci -m1 # | o 3 br
hg up default # |/|
echo b > b # o | 2 default
hg ci -Am1 # | |
hg up br # | o 1 br
hg merge tip # |/
hg ci -m1 # o 0 default
hg up 2
echo c > c
hg ci -Am1
hg up 3
hg merge 4
hg ci -m1
cd .. # main repo layout:
echo 's = s' > .hgsub #
hg -R s up 2 # * <-- try to merge default into br again
hg ci -Am1 # .`|
hg branch br # . o 5 br --> substate = 5
echo b > b # . |
hg -R s up 3 # o | 4 default --> substate = 4
hg ci -Am1 # | |
hg up default # | o 3 br --> substate = 2
echo c > c # |/|
hg ci -Am1 # o | 2 default --> substate = 2
hg up 1 # | |
hg merge 2 # | o 1 br --> substate = 3
hg ci -m1 # |/
hg up 2 # o 0 default --> substate = 2
hg -R s up 4
echo d > d
hg ci -Am1
hg up 3
hg -R s up 5
echo e > e
hg ci -Am1
hg up 5
hg merge 4 # try to merge default into br again
exit 0

View File

@ -203,3 +203,43 @@ added 1 changesets with 1 changes to 1 files
blah
% bogus subrepo path aborts
abort: missing ] in subrepo source
% issue 1986
adding a
marked working directory as branch br
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
adding b
created new head
1 files updated, 0 files merged, 1 files removed, 0 files unresolved
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
adding c
created new head
1 files updated, 0 files merged, 1 files removed, 0 files unresolved
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)
1 files updated, 0 files merged, 1 files removed, 0 files unresolved
adding .hgsub
committing subrepository s
marked working directory as branch br
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
adding b
committing subrepository s
1 files updated, 0 files merged, 1 files removed, 0 files unresolved
adding c
created new head
2 files updated, 0 files merged, 1 files removed, 0 files unresolved
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)
1 files updated, 0 files merged, 1 files removed, 0 files unresolved
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
adding d
committing subrepository s
created new head
2 files updated, 0 files merged, 1 files removed, 0 files unresolved
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
adding e
committing subrepository s
0 files updated, 0 files merged, 0 files removed, 0 files unresolved
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)