% first revision, no sub
adding a
% add first sub
adding a
committing subrepository s
% add sub sub
committing subrepository s
committing subrepository ss
% bump sub rev
committing subrepository s
% leave sub dirty
committing subrepository s
changeset:   3:1c833a7a9e3a
tag:         tip
user:        test
date:        Thu Jan 01 00:00:00 1970 +0000
summary:     4

% check caching
0 files updated, 0 files merged, 2 files removed, 0 files unresolved
% restore
2 files updated, 0 files merged, 0 files removed, 0 files unresolved
path s
 source   s
 revision 1c833a7a9e3a4445c711aaf0f012379cd0d4034e
% new branch for merge tests
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
adding t/t
% 5
committing subrepository t
created new head
% 6
committing subrepository t
path s
 source   s
 revision e4ece1bf43360ddc8f6a96432201a37b7cd27ae4
path t
 source   t
 revision 6747d179aa9a688023c4b0cad32e4c92bb7f34ad
% 7
committing subrepository t
% 8
% merge tests
2 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)
path s
 source   s
 revision fc627a69481fcbe5f1135069e8a3881c023e4cf5
path t
 source   t
 revision 60ca1237c19474e7a3978b0dc1ca4e6f36d51382
created new head
  searching for copies back to rev 2
resolving manifests
 overwrite None partial False
 ancestor 1f14a2e2d3ec local f0d2028bf86d+ remote 1831e14459c4
 .hgsubstate: versions differ -> m
update: .hgsubstate 1/1 files (100.00%)
subrepo merge f0d2028bf86d+ 1831e14459c4 1f14a2e2d3ec
  subrepo t: other changed, get t:6747d179aa9a688023c4b0cad32e4c92bb7f34ad:hg
getting subrepo t
resolving manifests
 overwrite True partial False
 ancestor 60ca1237c194+ local 60ca1237c194+ remote 6747d179aa9a
 t: remote is newer -> g
update: t 1/1 files (100.00%)
getting t
0 files updated, 0 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)
path s
 source   s
 revision fc627a69481fcbe5f1135069e8a3881c023e4cf5
path t
 source   t
 revision 6747d179aa9a688023c4b0cad32e4c92bb7f34ad
committing subrepository t
  searching for copies back to rev 2
resolving manifests
 overwrite None partial False
 ancestor 1831e14459c4 local e45c8b14af55+ remote f94576341bcf
 .hgsubstate: versions differ -> m
update: .hgsubstate 1/1 files (100.00%)
subrepo merge e45c8b14af55+ f94576341bcf 1831e14459c4
  subrepo t: both sides changed, merge with t:7af322bc1198a32402fe903e0b7ebcfc5c9bf8f4:hg
merging subrepo t
  searching for copies back to rev 2
resolving manifests
 overwrite None partial False
 ancestor 6747d179aa9a local 20a0db6fbf6c+ remote 7af322bc1198
 t: versions differ -> m
preserving t for resolve of t
update: t 1/1 files (100.00%)
picked tool 'internal:merge' for t (binary False symlink False)
merging t
my t@20a0db6fbf6c+ other t@7af322bc1198 ancestor t@6747d179aa9a
warning: conflicts during merge.
merging t failed!
0 files updated, 0 files merged, 0 files removed, 1 files unresolved
use 'hg resolve' to retry unresolved file merges or 'hg update -C' to abandon
0 files updated, 0 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)
% should conflict
<<<<<<< local
conflict
=======
t3
>>>>>>> other
% clone
updating to branch default
pulling subrepo s
requesting all changes
adding changesets
adding manifests
adding file changes
added 4 changesets with 5 changes to 3 files
pulling subrepo ss
requesting all changes
adding changesets
adding manifests
adding file changes
added 1 changesets with 1 changes to 1 files
pulling subrepo t
requesting all changes
adding changesets
adding manifests
adding file changes
added 4 changesets with 4 changes to 1 files (+1 heads)
3 files updated, 0 files merged, 0 files removed, 0 files unresolved
path s
 source   s
 revision fc627a69481fcbe5f1135069e8a3881c023e4cf5
path t
 source   t
 revision 20a0db6fbf6c3d2836e6519a642ae929bfc67c0e
% push
committing subrepository t
pushing ...sub/t
pushing ...subrepo ss
searching for changes
no changes found
pushing ...subrepo s
searching for changes
no changes found
pushing ...subrepo t
searching for changes
adding changesets
adding manifests
adding file changes
added 1 changesets with 1 changes to 1 files
searching for changes
adding changesets
adding manifests
adding file changes
added 1 changesets with 1 changes to 1 files
% push -f
committing subrepository s
abort: push creates new remote heads on branch 'default'!
pushing ...sub/t
pushing ...subrepo ss
searching for changes
no changes found
pushing ...subrepo s
searching for changes
(did you forget to merge? use push -f to force)
pushing ...subrepo t
searching for changes
no changes found
searching for changes
adding changesets
adding manifests
adding file changes
added 1 changesets with 1 changes to 1 files
pushing ...sub/t
pushing ...subrepo ss
searching for changes
no changes found
pushing ...subrepo s
searching for changes
adding changesets
adding manifests
adding file changes
added 1 changesets with 1 changes to 1 files (+1 heads)
pushing ...subrepo t
searching for changes
no changes found
searching for changes
no changes found
% update
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
committing subrepository t
% pull
pulling ...sub/t
searching for changes
adding changesets
adding manifests
adding file changes
added 1 changesets with 1 changes to 1 files
(run 'hg update' to get a working copy)
pulling subrepo t
searching for changes
adding changesets
adding manifests
adding file changes
added 1 changesets with 1 changes to 1 files
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
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)
% test subrepo delete from .hgsubstate
adding testdelete/nested/foo
adding testdelete/nested2/foo
adding testdelete/.hgsub
committing subrepository nested2
committing subrepository nested
nested
% test repository cloning
adding nested_absolute/foo
adding nested_relative/foo2
adding main/.hgsub
committing subrepository nested_relative
committing subrepository nested_absolute
updating to branch default
2 files updated, 0 files merged, 0 files removed, 0 files unresolved
[paths]
default = $HGTMP/test-subrepo/sub/mercurial/main/nested_absolute
[paths]
default = $HGTMP/test-subrepo/sub/mercurial/main/nested_relative
