tests/test-subrepo.out
author Nicolas Dumazet <nicdumz.commits@gmail.com>
Sat, 03 Jul 2010 18:11:15 +0900
changeset 11608 183e63112698
parent 11485 b602a95c21ec
child 11683 757f39fa1162
child 11716 db426935fa94
permissions -rw-r--r--
log: remove increasing windows usage in fastpath The purpose of increasing windows is to allow backwards iteration on the filelog at a reasonable cost. But is it needed? - if follow is False, we have no reason to iterate backwards. We basically just want to walk the complete filelog and yield all revisions within the revision range. We can do this forward or backwards, as it only reads the index. - when follow is True, we need to examine the contents of the filelog, and to do this efficiently we need to read the filelog forward. And on the other hand, to track ancestors and copies, we need to process revisions backwards. But is it necessary to use increasing windows for this? We can iterate over the complete filelog forward, stack the revisions, and read the reversed(pile), it does the same thing with a more readable code.

% first revision, no sub
adding a
% add first sub
abort: can't commit subrepos without .hgsub
adding a
parent: 0:f7b1eb17ad24 tip
 0
branch: default
commit: 1 added, 1 subrepos
update: (current)
committing subrepository s
parent: 1:7cf8cfea66e4 tip
 1
branch: default
commit: 1 subrepos
update: (current)
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
parent: 1:7cf8cfea66e4 tip
 1
branch: default
commit: (clean)
update: (current)
% add sub sub
parent: 1:7cf8cfea66e4 tip
 1
branch: default
commit: 1 subrepos
update: (current)
committing subrepository s
committing subrepository s/ss
parent: 2:df30734270ae tip
 2
branch: default
commit: (clean)
update: (current)
% 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 from .../sub/t/s
requesting all changes
adding changesets
adding manifests
adding file changes
added 4 changesets with 5 changes to 3 files
pulling subrepo s/ss from .../sub/t/s/ss
requesting all changes
adding changesets
adding manifests
adding file changes
added 1 changesets with 1 changes to 1 files
pulling subrepo t from .../sub/t/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 ...sub/t/s/ss
searching for changes
no changes found
pushing ...sub/t/s
searching for changes
no changes found
pushing ...sub/t/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 ...sub/t/s/ss
searching for changes
no changes found
pushing ...sub/t/s
searching for changes
(did you forget to merge? use push -f to force)
pushing ...sub/t
pushing ...sub/t/s/ss
searching for changes
no changes found
pushing ...sub/t/s
searching for changes
adding changesets
adding manifests
adding file changes
added 1 changesets with 1 changes to 1 files (+1 heads)
pushing ...sub/t/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
% 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 from .../sub/t/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
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
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
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
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/nested_absolute
[paths]
default = $HGTMP/test-subrepo/sub/mercurial/nested_relative
% issue 1977
adding a
adding .hgsub
committing subrepository s
updating to branch default
pulling subrepo s from .../sub/repo/s
requesting all changes
adding changesets
adding manifests
adding file changes
added 1 changesets with 1 changes to 1 files
2 files updated, 0 files merged, 0 files removed, 0 files unresolved
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
created new head
committing subrepository s
abort: push creates new remote heads on branch 'default'!
0 files updated, 0 files merged, 0 files removed, 0 files unresolved