##// END OF EJS Templates
parsers: add a C function to pack the dirstate...
parsers: add a C function to pack the dirstate This is about 9 times faster than the Python dirstate packing code. The relatively small speedup is due to the poor locality and memory access patterns caused by traversing dicts and other boxed Python values.

File last commit:

r16912:6ef3107c default
r16955:92e1c64b default
Show More
test-subrepo.t
1017 lines | 23.7 KiB | text/troff | Tads3Lexer
Martin Geisler
subrepos: abort commit by default if a subrepo is dirty (BC)...
r15321 Let commit recurse into subrepos by default to match pre-2.0 behavior:
$ echo "[ui]" >> $HGRCPATH
$ echo "commitsubrepos = Yes" >> $HGRCPATH
Martin Geisler
tests: unify test-subrepo
r11912 $ hg init t
$ cd t
first revision, no sub
$ echo a > a
$ hg ci -Am0
adding a
add first sub
$ echo s = s > .hgsub
$ hg add .hgsub
$ hg init s
$ echo a > s/a
Martin Geisler
tests: added a short description to issue numbers...
r12399 Issue2232: committing a subrepo without .hgsub
Martin Geisler
tests: unify test-subrepo
r11912
$ hg ci -mbad s
abort: can't commit subrepos without .hgsub
Matt Mackall
tests: add exit codes to unified tests
r12316 [255]
Martin Geisler
tests: unify test-subrepo
r11912
$ hg -R s ci -Ams0
adding a
$ hg sum
parent: 0:f7b1eb17ad24 tip
0
branch: default
commit: 1 added, 1 subrepos
update: (current)
$ hg ci -m1
Angel Ezquerra
tests: add test for fileset 'subrepo' keyword
r16454 Revert subrepo and test subrepo fileset keyword:
Angel Ezquerra
revert: warn that subrepos cannot be reverted...
r15265
$ echo b > s/a
Angel Ezquerra
tests: add test for fileset 'subrepo' keyword
r16454 $ hg revert "set:subrepo('glob:s*')"
Angel Ezquerra
revert: add support for reverting subrepos without --no-backup and/or --all...
r16430 reverting subrepo s
Mads Kiilerich
tests: add missing accept of native pathname separator
r16540 reverting s/a (glob)
Angel Ezquerra
revert: add support for reverting subrepos without --no-backup and/or --all...
r16430 $ rm s/a.orig
Angel Ezquerra
revert: warn that subrepos cannot be reverted...
r15265
Angel Ezquerra
revert: add support for reverting subrepos without --no-backup and/or --all...
r16430 Revert subrepo with no backup. The "reverting s/a" line is gone since
we're really running 'hg update' in the subrepo:
$ echo b > s/a
$ hg revert --no-backup s
reverting subrepo s
Angel Ezquerra
revert: warn that subrepos cannot be reverted...
r15265
Martin Geisler
tests: added a short description to issue numbers...
r12399 Issue2022: update -C
Martin Geisler
tests: unify test-subrepo
r11912
$ echo b > s/a
$ hg sum
parent: 1:7cf8cfea66e4 tip
1
branch: default
commit: 1 subrepos
update: (current)
$ hg co -C 1
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ hg sum
parent: 1:7cf8cfea66e4 tip
1
branch: default
commit: (clean)
update: (current)
Eric Roshan Eisner
cmdutil.bailifchanged: abort for dirty subrepos
r15231 commands that require a clean repo should respect subrepos
$ echo b >> s/a
$ hg backout tip
abort: uncommitted changes in subrepo s
[255]
$ hg revert -C -R s s/a
Martin Geisler
tests: unify test-subrepo
r11912 add sub sub
$ echo ss = ss > s/.hgsub
$ hg init s/ss
$ echo a > s/ss/a
$ hg -R s add s/.hgsub
$ hg -R s/ss add s/ss/a
$ hg sum
parent: 1:7cf8cfea66e4 tip
1
branch: default
commit: 1 subrepos
update: (current)
$ hg ci -m2
committing subrepository s
Mads Kiilerich
tests: make (glob) on windows accept \ instead of /...
r15447 committing subrepository s/ss (glob)
Martin Geisler
tests: unify test-subrepo
r11912 $ hg sum
parent: 2:df30734270ae tip
2
branch: default
commit: (clean)
update: (current)
Patrick Mezard
commit: abort if a subrepo is modified and ui.commitsubrepos=no...
r13411 bump sub rev (and check it is ignored by ui.commitsubrepos)
Martin Geisler
tests: unify test-subrepo
r11912
$ echo b > s/a
$ hg -R s ci -ms1
Patrick Mezard
commit: abort if a subrepo is modified and ui.commitsubrepos=no...
r13411 $ hg --config ui.commitsubrepos=no ci -m3
Martin Geisler
tests: unify test-subrepo
r11912
Patrick Mezard
commit: abort if a subrepo is modified and ui.commitsubrepos=no...
r13411 leave sub dirty (and check ui.commitsubrepos=no aborts the commit)
Martin Geisler
tests: unify test-subrepo
r11912
$ echo c > s/a
Patrick Mezard
commit: abort if a subrepo is modified and ui.commitsubrepos=no...
r13411 $ hg --config ui.commitsubrepos=no ci -m4
abort: uncommitted changes in subrepo s
Martin Geisler
subrepos: abort commit by default if a subrepo is dirty (BC)...
r15321 (use --subrepos for recursive commit)
Patrick Mezard
commit: abort if a subrepo is modified and ui.commitsubrepos=no...
r13411 [255]
Martin Geisler
tests: unify test-subrepo
r11912 $ hg ci -m4
committing subrepository s
$ hg tip -R s
changeset: 3:1c833a7a9e3a
tag: tip
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: 4
check caching
$ hg co 0
0 files updated, 0 files merged, 2 files removed, 0 files unresolved
$ hg debugsub
restore
$ hg co
2 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ hg debugsub
path s
source s
revision 1c833a7a9e3a4445c711aaf0f012379cd0d4034e
new branch for merge tests
$ hg co 1
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ echo t = t >> .hgsub
$ hg init t
$ echo t > t/t
$ hg -R t add t
Mads Kiilerich
tests: make (glob) on windows accept \ instead of /...
r15447 adding t/t (glob)
Martin Geisler
tests: unify test-subrepo
r11912
5
$ hg ci -m5 # add sub
committing subrepository t
created new head
$ echo t2 > t/t
6
$ hg st -R s
$ hg ci -m6 # change sub
committing subrepository t
$ hg debugsub
path s
source s
revision e4ece1bf43360ddc8f6a96432201a37b7cd27ae4
path t
source t
revision 6747d179aa9a688023c4b0cad32e4c92bb7f34ad
$ echo t3 > t/t
7
$ hg ci -m7 # change sub again for conflict test
committing subrepository t
$ hg rm .hgsub
8
$ hg ci -m8 # remove sub
merge tests
$ hg co -C 3
2 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ hg merge 5 # test adding
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)
$ hg debugsub
path s
source s
revision fc627a69481fcbe5f1135069e8a3881c023e4cf5
path t
source t
revision 60ca1237c19474e7a3978b0dc1ca4e6f36d51382
$ hg ci -m9
created new head
$ hg merge 6 --debug # test change
searching for copies back to rev 2
resolving manifests
Martin Geisler
merge: make debug output easier to read...
r15625 overwrite: False, partial: False
ancestor: 1f14a2e2d3ec, local: f0d2028bf86d+, remote: 1831e14459c4
Martin Geisler
tests: unify test-subrepo
r11912 .hgsubstate: versions differ -> m
updating: .hgsubstate 1/1 files (100.00%)
subrepo merge f0d2028bf86d+ 1831e14459c4 1f14a2e2d3ec
subrepo t: other changed, get t:6747d179aa9a688023c4b0cad32e4c92bb7f34ad:hg
getting subrepo t
resolving manifests
Martin Geisler
merge: make debug output easier to read...
r15625 overwrite: True, partial: False
ancestor: 60ca1237c194+, local: 60ca1237c194+, remote: 6747d179aa9a
Martin Geisler
tests: unify test-subrepo
r11912 t: remote is newer -> g
updating: 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)
$ hg debugsub
path s
source s
revision fc627a69481fcbe5f1135069e8a3881c023e4cf5
path t
source t
revision 6747d179aa9a688023c4b0cad32e4c92bb7f34ad
$ echo conflict > t/t
$ hg ci -m10
committing subrepository t
$ HGMERGE=internal:merge hg merge --debug 7 # test conflict
searching for copies back to rev 2
resolving manifests
Martin Geisler
merge: make debug output easier to read...
r15625 overwrite: False, partial: False
ancestor: 1831e14459c4, local: e45c8b14af55+, remote: f94576341bcf
Martin Geisler
tests: unify test-subrepo
r11912 .hgsubstate: versions differ -> m
updating: .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
Martin Geisler
merge: make debug output easier to read...
r15625 overwrite: False, partial: False
ancestor: 6747d179aa9a, local: 20a0db6fbf6c+, remote: 7af322bc1198
Martin Geisler
tests: unify test-subrepo
r11912 t: versions differ -> m
preserving t for resolve of t
updating: 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.
Matt Mackall
merge: give a special message for internal:merge failure (issue3105)
r15501 merging t incomplete! (edit conflicts, then use 'hg resolve --mark')
Martin Geisler
tests: unify test-subrepo
r11912 0 files updated, 0 files merged, 0 files removed, 1 files unresolved
Brodie Rao
merge: suggest 'hg up -C .' for discarding changes, not 'hg up -C'...
r12314 use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon
Martin Geisler
tests: unify test-subrepo
r11912 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)
should conflict
$ cat t/t
<<<<<<< local
conflict
=======
t3
>>>>>>> other
clone
$ cd ..
$ hg clone t tc
updating to branch default
Mads Kiilerich
tests: cleanup of tests that got lost in their own nested directories...
r16912 cloning subrepo s from $TESTTMP/t/s (glob)
cloning subrepo s/ss from $TESTTMP/t/s/ss (glob)
cloning subrepo t from $TESTTMP/t/t (glob)
Martin Geisler
tests: unify test-subrepo
r11912 3 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ cd tc
$ hg debugsub
path s
source s
revision fc627a69481fcbe5f1135069e8a3881c023e4cf5
path t
source t
revision 20a0db6fbf6c3d2836e6519a642ae929bfc67c0e
push
$ echo bah > t/t
$ hg ci -m11
committing subrepository t
$ hg push
Mads Kiilerich
tests: cleanup of tests that got lost in their own nested directories...
r16912 pushing to $TESTTMP/t (glob)
pushing subrepo s/ss to $TESTTMP/t/s/ss (glob)
Martin Geisler
tests: unify test-subrepo
r11912 searching for changes
no changes found
Mads Kiilerich
tests: cleanup of tests that got lost in their own nested directories...
r16912 pushing subrepo s to $TESTTMP/t/s (glob)
Martin Geisler
tests: unify test-subrepo
r11912 searching for changes
no changes found
Mads Kiilerich
tests: cleanup of tests that got lost in their own nested directories...
r16912 pushing subrepo t to $TESTTMP/t/t (glob)
Martin Geisler
tests: unify test-subrepo
r11912 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
$ echo bah > s/a
$ hg ci -m12
committing subrepository s
$ hg push
Mads Kiilerich
tests: cleanup of tests that got lost in their own nested directories...
r16912 pushing to $TESTTMP/t (glob)
pushing subrepo s/ss to $TESTTMP/t/s/ss (glob)
Martin Geisler
tests: unify test-subrepo
r11912 searching for changes
no changes found
Mads Kiilerich
tests: cleanup of tests that got lost in their own nested directories...
r16912 pushing subrepo s to $TESTTMP/t/s (glob)
Martin Geisler
tests: unify test-subrepo
r11912 searching for changes
Adrian Buehlmann
prepush: print short hash of first new head in abort message...
r14525 abort: push creates new remote head 12a213df6fa9!
Martin Geisler
tests: unify test-subrepo
r11912 (did you forget to merge? use push -f to force)
Matt Mackall
tests: add exit codes to unified tests
r12316 [255]
Martin Geisler
tests: unify test-subrepo
r11912 $ hg push -f
Mads Kiilerich
tests: cleanup of tests that got lost in their own nested directories...
r16912 pushing to $TESTTMP/t (glob)
pushing subrepo s/ss to $TESTTMP/t/s/ss (glob)
Martin Geisler
tests: unify test-subrepo
r11912 searching for changes
no changes found
Mads Kiilerich
tests: cleanup of tests that got lost in their own nested directories...
r16912 pushing subrepo s to $TESTTMP/t/s (glob)
Martin Geisler
tests: unify test-subrepo
r11912 searching for changes
adding changesets
adding manifests
adding file changes
added 1 changesets with 1 changes to 1 files (+1 heads)
Mads Kiilerich
tests: cleanup of tests that got lost in their own nested directories...
r16912 pushing subrepo t to $TESTTMP/t/t (glob)
Martin Geisler
tests: unify test-subrepo
r11912 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
$ cd ../t
$ hg up -C # discard our earlier merge
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ echo blah > t/t
$ hg ci -m13
committing subrepository t
pull
$ cd ../tc
$ hg pull
Mads Kiilerich
tests: cleanup of tests that got lost in their own nested directories...
r16912 pulling from $TESTTMP/t (glob)
Martin Geisler
tests: unify test-subrepo
r11912 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)
should pull t
$ hg up
Mads Kiilerich
tests: cleanup of tests that got lost in their own nested directories...
r16912 pulling subrepo t from $TESTTMP/t/t (glob)
Martin Geisler
tests: unify test-subrepo
r11912 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
$ cat t/t
blah
bogus subrepo path aborts
$ echo 'bogus=[boguspath' >> .hgsub
$ hg ci -m 'bogus subrepo path'
abort: missing ] in subrepo source
Matt Mackall
tests: add exit codes to unified tests
r12316 [255]
Martin Geisler
tests: unify test-subrepo
r11912
Martin Geisler
tests: added a short description to issue numbers...
r12399 Issue1986: merge aborts when trying to merge a subrepo that
shouldn't need merging
Martin Geisler
tests: unify test-subrepo
r11912
# subrepo layout
#
# o 5 br
# /|
# o | 4 default
# | |
# | o 3 br
# |/|
# o | 2 default
# | |
# | o 1 br
# |/
# o 0 default
$ cd ..
$ rm -rf sub
$ hg init main
$ cd main
$ hg init s
$ cd s
$ echo a > a
$ hg ci -Am1
adding a
$ hg branch br
marked working directory as branch br
Matt Mackall
branch: warn on branching
r15615 (branches are permanent and global, did you want a bookmark?)
Martin Geisler
tests: unify test-subrepo
r11912 $ echo a >> a
$ hg ci -m1
$ hg up default
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ echo b > b
$ hg ci -Am1
adding b
$ hg up br
1 files updated, 0 files merged, 1 files removed, 0 files unresolved
$ hg merge tip
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)
$ hg ci -m1
$ hg up 2
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ echo c > c
$ hg ci -Am1
adding c
$ hg up 3
1 files updated, 0 files merged, 1 files removed, 0 files unresolved
$ hg merge 4
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)
$ hg ci -m1
# main repo layout:
#
# * <-- try to merge default into br again
# .`|
# . o 5 br --> substate = 5
# . |
# o | 4 default --> substate = 4
# | |
# | o 3 br --> substate = 2
# |/|
# o | 2 default --> substate = 2
# | |
# | o 1 br --> substate = 3
# |/
# o 0 default --> substate = 2
$ cd ..
$ echo 's = s' > .hgsub
$ hg -R s up 2
1 files updated, 0 files merged, 1 files removed, 0 files unresolved
$ hg ci -Am1
adding .hgsub
$ hg branch br
marked working directory as branch br
Matt Mackall
branch: warn on branching
r15615 (branches are permanent and global, did you want a bookmark?)
Martin Geisler
tests: unify test-subrepo
r11912 $ echo b > b
$ hg -R s up 3
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ hg ci -Am1
adding b
$ hg up default
1 files updated, 0 files merged, 1 files removed, 0 files unresolved
$ echo c > c
$ hg ci -Am1
adding c
$ hg up 1
2 files updated, 0 files merged, 1 files removed, 0 files unresolved
$ hg merge 2
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)
$ hg ci -m1
$ hg up 2
1 files updated, 0 files merged, 1 files removed, 0 files unresolved
$ hg -R s up 4
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ echo d > d
$ hg ci -Am1
adding d
$ hg up 3
2 files updated, 0 files merged, 1 files removed, 0 files unresolved
$ hg -R s up 5
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ echo e > e
$ hg ci -Am1
adding e
$ hg up 5
0 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ hg merge 4 # try to merge default into br again
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)
$ cd ..
test subrepo delete from .hgsubstate
$ hg init testdelete
$ mkdir testdelete/nested testdelete/nested2
$ hg init testdelete/nested
$ hg init testdelete/nested2
$ echo test > testdelete/nested/foo
$ echo test > testdelete/nested2/foo
$ hg -R testdelete/nested add
Mads Kiilerich
tests: make (glob) on windows accept \ instead of /...
r15447 adding testdelete/nested/foo (glob)
Martin Geisler
tests: unify test-subrepo
r11912 $ hg -R testdelete/nested2 add
Mads Kiilerich
tests: make (glob) on windows accept \ instead of /...
r15447 adding testdelete/nested2/foo (glob)
Martin Geisler
tests: unify test-subrepo
r11912 $ hg -R testdelete/nested ci -m test
$ hg -R testdelete/nested2 ci -m test
$ echo nested = nested > testdelete/.hgsub
$ echo nested2 = nested2 >> testdelete/.hgsub
$ hg -R testdelete add
Mads Kiilerich
tests: make (glob) on windows accept \ instead of /...
r15447 adding testdelete/.hgsub (glob)
Martin Geisler
tests: unify test-subrepo
r11912 $ hg -R testdelete ci -m "nested 1 & 2 added"
$ echo nested = nested > testdelete/.hgsub
$ hg -R testdelete ci -m "nested 2 deleted"
$ cat testdelete/.hgsubstate
bdf5c9a3103743d900b12ae0db3ffdcfd7b0d878 nested
$ hg -R testdelete remove testdelete/.hgsub
$ hg -R testdelete ci -m ".hgsub deleted"
$ cat testdelete/.hgsubstate
Matt Mackall
subrepo: be more careful with deletions of .hgsub and .hgsubstate (issue2844)...
r14536 bdf5c9a3103743d900b12ae0db3ffdcfd7b0d878 nested
Martin Geisler
tests: unify test-subrepo
r11912
test repository cloning
$ mkdir mercurial mercurial2
$ hg init nested_absolute
$ echo test > nested_absolute/foo
$ hg -R nested_absolute add
Mads Kiilerich
tests: make (glob) on windows accept \ instead of /...
r15447 adding nested_absolute/foo (glob)
Martin Geisler
tests: unify test-subrepo
r11912 $ hg -R nested_absolute ci -mtest
$ cd mercurial
$ hg init nested_relative
$ echo test2 > nested_relative/foo2
$ hg -R nested_relative add
Mads Kiilerich
tests: make (glob) on windows accept \ instead of /...
r15447 adding nested_relative/foo2 (glob)
Martin Geisler
tests: unify test-subrepo
r11912 $ hg -R nested_relative ci -mtest2
$ hg init main
$ echo "nested_relative = ../nested_relative" > main/.hgsub
$ echo "nested_absolute = `pwd`/nested_absolute" >> main/.hgsub
$ hg -R main add
Mads Kiilerich
tests: make (glob) on windows accept \ instead of /...
r15447 adding main/.hgsub (glob)
Martin Geisler
tests: unify test-subrepo
r11912 $ hg -R main ci -m "add subrepos"
$ cd ..
$ hg clone mercurial/main mercurial2/main
updating to branch default
2 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ cat mercurial2/main/nested_absolute/.hg/hgrc \
> mercurial2/main/nested_relative/.hg/hgrc
[paths]
Mads Kiilerich
tests: cleanup of tests that got lost in their own nested directories...
r16912 default = $TESTTMP/mercurial/nested_absolute
Martin Geisler
tests: unify test-subrepo
r11912 [paths]
Mads Kiilerich
tests: cleanup of tests that got lost in their own nested directories...
r16912 default = $TESTTMP/mercurial/nested_relative
Martin Geisler
tests: unify test-subrepo
r11912 $ rm -rf mercurial mercurial2
Martin Geisler
tests: added a short description to issue numbers...
r12399 Issue1977: multirepo push should fail if subrepo push fails
Martin Geisler
tests: unify test-subrepo
r11912
$ hg init repo
$ hg init repo/s
$ echo a > repo/s/a
$ hg -R repo/s ci -Am0
adding a
$ echo s = s > repo/.hgsub
$ hg -R repo ci -Am1
adding .hgsub
$ hg clone repo repo2
updating to branch default
Mads Kiilerich
tests: cleanup of tests that got lost in their own nested directories...
r16912 cloning subrepo s from $TESTTMP/repo/s (glob)
Martin Geisler
tests: unify test-subrepo
r11912 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ hg -q -R repo2 pull -u
$ echo 1 > repo2/s/a
$ hg -R repo2/s ci -m2
$ hg -q -R repo2/s push
$ hg -R repo2/s up -C 0
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ echo 2 > repo2/s/a
$ hg -R repo2/s ci -m3
created new head
$ hg -R repo2 ci -m3
$ hg -q -R repo2 push
Adrian Buehlmann
prepush: print short hash of first new head in abort message...
r14525 abort: push creates new remote head 9d66565e64e1!
Martin Geisler
tests: unify test-subrepo
r11912 (did you forget to merge? use push -f to force)
Matt Mackall
tests: add exit codes to unified tests
r12316 [255]
Martin Geisler
tests: unify test-subrepo
r11912 $ hg -R repo update
0 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ rm -rf repo2 repo
Mads Kiilerich
subrepo: abort instead of pushing/pulling to the repo itself...
r12753
Issue1852 subrepos with relative paths always push/pull relative to default
Prepare a repo with subrepo
$ hg init issue1852a
$ cd issue1852a
$ hg init sub/repo
$ echo test > sub/repo/foo
$ hg -R sub/repo add sub/repo/foo
$ echo sub/repo = sub/repo > .hgsub
$ hg add .hgsub
$ hg ci -mtest
Mads Kiilerich
tests: make (glob) on windows accept \ instead of /...
r15447 committing subrepository sub/repo (glob)
Mads Kiilerich
subrepo: abort instead of pushing/pulling to the repo itself...
r12753 $ echo test >> sub/repo/foo
$ hg ci -mtest
Mads Kiilerich
tests: make (glob) on windows accept \ instead of /...
r15447 committing subrepository sub/repo (glob)
Mads Kiilerich
subrepo: abort instead of pushing/pulling to the repo itself...
r12753 $ cd ..
Create repo without default path, pull top repo, and see what happens on update
$ hg init issue1852b
$ hg -R issue1852b pull issue1852a
pulling from issue1852a
requesting all changes
adding changesets
adding manifests
adding file changes
added 2 changesets with 3 changes to 2 files
(run 'hg update' to get a working copy)
$ hg -R issue1852b update
Mads Kiilerich
tests: make (glob) on windows accept \ instead of /...
r15447 abort: default path for subrepository sub/repo not found (glob)
Mads Kiilerich
subrepo: abort instead of pushing/pulling to the repo itself...
r12753 [255]
Pull -u now doesn't help
$ hg -R issue1852b pull -u issue1852a
pulling from issue1852a
searching for changes
no changes found
Try the same, but with pull -u
$ hg init issue1852c
$ hg -R issue1852c pull -r0 -u issue1852a
pulling from issue1852a
adding changesets
adding manifests
adding file changes
added 1 changesets with 2 changes to 2 files
Mads Kiilerich
tests: make (glob) on windows accept \ instead of /...
r15447 cloning subrepo sub/repo from issue1852a/sub/repo (glob)
Mads Kiilerich
subrepo: propagate non-default pull/push path to relative subrepos (issue1852)
r12852 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
Mads Kiilerich
subrepo: abort instead of pushing/pulling to the repo itself...
r12753
Try to push from the other side
Mads Kiilerich
subrepo: propagate non-default pull/push path to relative subrepos (issue1852)
r12852 $ hg -R issue1852a push `pwd`/issue1852c
Mads Kiilerich
tests: cleanup of tests that got lost in their own nested directories...
r16912 pushing to $TESTTMP/issue1852c
pushing subrepo sub/repo to $TESTTMP/issue1852c/sub/repo (glob)
Mads Kiilerich
subrepo: propagate non-default pull/push path to relative subrepos (issue1852)
r12852 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
Oleg Stepanov
subrepo: do not report known files inside repositories as unknown
r13233
Martin Geisler
subrepo: respect non-default path for incoming/outgoing...
r14360 Incoming and outgoing should not use the default path:
$ hg clone -q issue1852a issue1852d
$ hg -R issue1852d outgoing --subrepos issue1852c
comparing with issue1852c
searching for changes
no changes found
comparing with issue1852c/sub/repo
searching for changes
no changes found
[1]
$ hg -R issue1852d incoming --subrepos issue1852c
comparing with issue1852c
searching for changes
no changes found
comparing with issue1852c/sub/repo
searching for changes
no changes found
[1]
Oleg Stepanov
subrepo: do not report known files inside repositories as unknown
r13233 Check status of files when none of them belong to the first
subrepository:
$ hg init subrepo-status
$ cd subrepo-status
$ hg init subrepo-1
$ hg init subrepo-2
$ cd subrepo-2
$ touch file
$ hg add file
$ cd ..
$ echo subrepo-1 = subrepo-1 > .hgsub
$ echo subrepo-2 = subrepo-2 >> .hgsub
$ hg add .hgsub
$ hg ci -m 'Added subrepos'
committing subrepository subrepo-2
$ hg st subrepo-2/file
Erik Zielke
subrepo: make update -C clean the working directory for svn subrepos...
r13322
Check hg update --clean
Mads Kiilerich
tests: cleanup of tests that got lost in their own nested directories...
r16912 $ cd $TESTTMP/t
Erik Zielke
subrepo: make update -C clean the working directory for svn subrepos...
r13322 $ rm -r t/t.orig
$ hg status -S --all
C .hgsub
C .hgsubstate
C a
C s/.hgsub
C s/.hgsubstate
C s/a
C s/ss/a
C t/t
$ echo c1 > s/a
$ cd s
$ echo c1 > b
$ echo c1 > c
$ hg add b
$ cd ..
$ hg status -S
M s/a
A s/b
? s/c
$ hg update -C
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ hg status -S
? s/b
? s/c
Erik Zielke
subrepos: prompt on conflicts on update with dirty subrepos...
r13417
Sticky subrepositories, no changes
Mads Kiilerich
tests: cleanup of tests that got lost in their own nested directories...
r16912 $ cd $TESTTMP/t
Erik Zielke
subrepos: prompt on conflicts on update with dirty subrepos...
r13417 $ hg id
925c17564ef8 tip
$ hg -R s id
12a213df6fa9 tip
$ hg -R t id
52c0adc0515a tip
$ hg update 11
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ hg id
365661e5936a
$ hg -R s id
fc627a69481f
$ hg -R t id
e95bcfa18a35
Sticky subrepositorys, file changes
$ touch s/f1
$ touch t/f1
$ hg add -S s/f1
$ hg add -S t/f1
$ hg id
365661e5936a
$ hg -R s id
fc627a69481f+
$ hg -R t id
e95bcfa18a35+
$ hg update tip
subrepository sources for s differ
use (l)ocal source (fc627a69481f) or (r)emote source (12a213df6fa9)?
l
subrepository sources for t differ
use (l)ocal source (e95bcfa18a35) or (r)emote source (52c0adc0515a)?
l
0 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ hg id
925c17564ef8+ tip
$ hg -R s id
fc627a69481f+
$ hg -R t id
e95bcfa18a35+
$ hg update --clean tip
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
Sticky subrepository, revision updates
$ hg id
925c17564ef8 tip
$ hg -R s id
12a213df6fa9 tip
$ hg -R t id
52c0adc0515a tip
$ cd s
$ hg update -r -2
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ cd ../t
$ hg update -r 2
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ cd ..
$ hg update 10
subrepository sources for t differ (in checked out version)
use (l)ocal source (7af322bc1198) or (r)emote source (20a0db6fbf6c)?
l
0 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ hg id
e45c8b14af55+
$ hg -R s id
1c833a7a9e3a
$ hg -R t id
7af322bc1198
Sticky subrepository, file changes and revision updates
$ touch s/f1
$ touch t/f1
$ hg add -S s/f1
$ hg add -S t/f1
$ hg id
e45c8b14af55+
$ hg -R s id
1c833a7a9e3a+
$ hg -R t id
7af322bc1198+
$ hg update tip
subrepository sources for s differ
use (l)ocal source (1c833a7a9e3a) or (r)emote source (12a213df6fa9)?
l
subrepository sources for t differ
use (l)ocal source (7af322bc1198) or (r)emote source (52c0adc0515a)?
l
0 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ hg id
925c17564ef8 tip
$ hg -R s id
1c833a7a9e3a+
$ hg -R t id
7af322bc1198+
Sticky repository, update --clean
$ hg update --clean tip
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ hg id
925c17564ef8 tip
$ hg -R s id
12a213df6fa9 tip
$ hg -R t id
52c0adc0515a tip
Test subrepo already at intended revision:
$ cd s
$ hg update fc627a69481f
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ cd ..
$ hg update 11
0 files updated, 0 files merged, 0 files removed, 0 files unresolved
0 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ hg id -n
11+
$ hg -R s id
fc627a69481f
$ hg -R t id
e95bcfa18a35
Matt Mackall
subrepo: be more careful with deletions of .hgsub and .hgsubstate (issue2844)...
r14536
Test that removing .hgsubstate doesn't break anything:
$ hg rm -f .hgsubstate
$ hg ci -mrm
Matt Mackall
subrepo: rewrite handling of subrepo state at commit (issue2403)...
r16073 nothing changed
[1]
Matt Mackall
subrepo: be more careful with deletions of .hgsub and .hgsubstate (issue2844)...
r14536 $ hg log -vr tip
Matt Mackall
subrepo: rewrite handling of subrepo state at commit (issue2403)...
r16073 changeset: 13:925c17564ef8
Matt Mackall
subrepo: be more careful with deletions of .hgsub and .hgsubstate (issue2844)...
r14536 tag: tip
user: test
date: Thu Jan 01 00:00:00 1970 +0000
Matt Mackall
subrepo: rewrite handling of subrepo state at commit (issue2403)...
r16073 files: .hgsubstate
Matt Mackall
subrepo: be more careful with deletions of .hgsub and .hgsubstate (issue2844)...
r14536 description:
Matt Mackall
subrepo: rewrite handling of subrepo state at commit (issue2403)...
r16073 13
Matt Mackall
subrepo: be more careful with deletions of .hgsub and .hgsubstate (issue2844)...
r14536
Test that removing .hgsub removes .hgsubstate:
$ hg rm .hgsub
$ hg ci -mrm2
Matt Mackall
subrepo: rewrite handling of subrepo state at commit (issue2403)...
r16073 created new head
Matt Mackall
subrepo: be more careful with deletions of .hgsub and .hgsubstate (issue2844)...
r14536 $ hg log -vr tip
Matt Mackall
subrepo: rewrite handling of subrepo state at commit (issue2403)...
r16073 changeset: 14:2400bccd50af
Matt Mackall
subrepo: be more careful with deletions of .hgsub and .hgsubstate (issue2844)...
r14536 tag: tip
Matt Mackall
subrepo: rewrite handling of subrepo state at commit (issue2403)...
r16073 parent: 11:365661e5936a
Matt Mackall
subrepo: be more careful with deletions of .hgsub and .hgsubstate (issue2844)...
r14536 user: test
date: Thu Jan 01 00:00:00 1970 +0000
files: .hgsub .hgsubstate
description:
rm2
Martin Geisler
test-subrepo: test for Issue3153
r15635 Test issue3153: diff -S with deleted subrepos
$ hg diff --nodates -S -c .
Matt Mackall
subrepo: rewrite handling of subrepo state at commit (issue2403)...
r16073 diff -r 365661e5936a -r 2400bccd50af .hgsub
Martin Geisler
test-subrepo: test for Issue3153
r15635 --- a/.hgsub
+++ /dev/null
@@ -1,2 +0,0 @@
-s = s
-t = t
Matt Mackall
subrepo: rewrite handling of subrepo state at commit (issue2403)...
r16073 diff -r 365661e5936a -r 2400bccd50af .hgsubstate
Martin Geisler
test-subrepo: test for Issue3153
r15635 --- a/.hgsubstate
+++ /dev/null
@@ -1,2 +0,0 @@
-fc627a69481fcbe5f1135069e8a3881c023e4cf5 s
-e95bcfa18a358dc4936da981ebf4147b4cad1362 t
Martin Geisler
merge with stable
r15636
David M. Carr
tests: add test for add of explicit path in subrepo...
r15409 Test behavior of add for explicit path in subrepo:
$ cd ..
David M. Carr
tests: add test for behavior of forget for explicit path in subrepo...
r15473 $ hg init explicit
$ cd explicit
David M. Carr
tests: add test for add of explicit path in subrepo...
r15409 $ echo s = s > .hgsub
$ hg add .hgsub
$ hg init s
$ hg ci -m0
David M. Carr
add: support adding explicit files in subrepos...
r15410 Adding with an explicit path in a subrepo adds the file
David M. Carr
tests: add test for add of explicit path in subrepo...
r15409 $ echo c1 > f1
$ echo c2 > s/f2
$ hg st -S
? f1
? s/f2
$ hg add s/f2
$ hg st -S
David M. Carr
add: support adding explicit files in subrepos...
r15410 A s/f2
David M. Carr
tests: add test for add of explicit path in subrepo...
r15409 ? f1
David M. Carr
add: support adding explicit files in subrepos...
r15410 $ hg ci -R s -m0
David M. Carr
tests: add test for add of explicit path in subrepo...
r15409 $ hg ci -Am1
adding f1
David M. Carr
add: support adding explicit files in subrepos...
r15410 Adding with an explicit path in a subrepo with -S has the same behavior
David M. Carr
tests: add test for add of explicit path in subrepo...
r15409 $ echo c3 > f3
$ echo c4 > s/f4
$ hg st -S
? f3
? s/f4
$ hg add -S s/f4
$ hg st -S
A s/f4
? f3
$ hg ci -R s -m1
$ hg ci -Ama2
adding f3
Adding without a path or pattern silently ignores subrepos
$ echo c5 > f5
$ echo c6 > s/f6
$ echo c7 > s/f7
$ hg st -S
? f5
? s/f6
? s/f7
$ hg add
adding f5
$ hg st -S
A f5
? s/f6
? s/f7
$ hg ci -R s -Am2
adding f6
adding f7
$ hg ci -m3
Adding without a path or pattern with -S also adds files in subrepos
$ echo c8 > f8
$ echo c9 > s/f9
$ echo c10 > s/f10
$ hg st -S
? f8
? s/f10
? s/f9
$ hg add -S
adding f8
Mads Kiilerich
tests: add missing '(glob)'s to match '\' in paths in test output on windows
r15520 adding s/f10 (glob)
adding s/f9 (glob)
David M. Carr
tests: add test for add of explicit path in subrepo...
r15409 $ hg st -S
A f8
A s/f10
A s/f9
$ hg ci -R s -m3
$ hg ci -m4
Adding with a pattern silently ignores subrepos
$ echo c11 > fm11
$ echo c12 > fn12
$ echo c13 > s/fm13
$ echo c14 > s/fn14
$ hg st -S
? fm11
? fn12
? s/fm13
? s/fn14
$ hg add 'glob:**fm*'
adding fm11
$ hg st -S
A fm11
? fn12
? s/fm13
? s/fn14
$ hg ci -R s -Am4
adding fm13
adding fn14
$ hg ci -Am5
adding fn12
Adding with a pattern with -S also adds matches in subrepos
$ echo c15 > fm15
$ echo c16 > fn16
$ echo c17 > s/fm17
$ echo c18 > s/fn18
$ hg st -S
? fm15
? fn16
? s/fm17
? s/fn18
$ hg add -S 'glob:**fm*'
adding fm15
Mads Kiilerich
tests: add missing '(glob)'s to match '\' in paths in test output on windows
r15520 adding s/fm17 (glob)
David M. Carr
tests: add test for add of explicit path in subrepo...
r15409 $ hg st -S
A fm15
A s/fm17
? fn16
? s/fn18
$ hg ci -R s -Am5
adding fn18
$ hg ci -Am6
adding fn16
David M. Carr
tests: add test for behavior of forget for explicit path in subrepo...
r15473
Test behavior of forget for explicit path in subrepo:
David M. Carr
forget: support forgetting explicit paths in subrepos...
r15474 Forgetting an explicit path in a subrepo untracks the file
David M. Carr
tests: add test for behavior of forget for explicit path in subrepo...
r15473 $ echo c19 > s/f19
$ hg add s/f19
$ hg st -S
A s/f19
$ hg forget s/f19
David M. Carr
forget: support forgetting explicit paths in subrepos...
r15474 $ hg st -S
? s/f19
David M. Carr
tests: add test for behavior of forget for explicit path in subrepo...
r15473 $ rm s/f19
Mads Kiilerich
tests: cleanup of tests that got lost in their own nested directories...
r16912 $ cd ..