##// END OF EJS Templates
subrepo: fix pruning of subrepo filenames in dirstate (issue2619)
subrepo: fix pruning of subrepo filenames in dirstate (issue2619)

File last commit:

r13339:22167be0 stable
r13339:22167be0 stable
Show More
test-subrepo-recursion.t
360 lines | 6.9 KiB | text/troff | Tads3Lexer
/ tests / test-subrepo-recursion.t
Martin Geisler
status: recurse into subrepositories with --subrepos/-S flag
r12166 Create test repository:
Martin Geisler
outgoing: recurse into subrepositories with --subrepos/-S flag...
r12272 $ hg init repo
$ cd repo
Martin Geisler
status: recurse into subrepositories with --subrepos/-S flag
r12166 $ echo x1 > x.txt
$ hg init foo
$ cd foo
$ echo y1 > y.txt
$ hg init bar
$ cd bar
$ echo z1 > z.txt
$ cd ..
$ echo 'bar = bar' > .hgsub
$ cd ..
$ echo 'foo = foo' > .hgsub
Martin Geisler
add: recurse into subrepositories with --subrepos/-S flag
r12270
Add files --- .hgsub files must go first to trigger subrepos:
$ hg add -S .hgsub
$ hg add -S foo/.hgsub
$ hg add -S foo/bar
adding foo/bar/z.txt
$ hg add -S
adding x.txt
adding foo/y.txt
Martin Geisler
status: recurse into subrepositories with --subrepos/-S flag
r12166
Martin Geisler
subrepos: handle modified but uncommitted .hgsub
r12175 Test recursive status without committing anything:
Erik Zielke
test-subrepo-recursion: deleted default arguments...
r12588 $ hg status -S
Martin Geisler
subrepos: handle modified but uncommitted .hgsub
r12175 A .hgsub
A foo/.hgsub
A foo/bar/z.txt
A foo/y.txt
A x.txt
Test recursive diff without committing anything:
Erik Zielke
test-subrepo-recursion: deleted default arguments...
r12588 $ hg diff --nodates -S foo
Martin Geisler
subrepos: handle modified but uncommitted .hgsub
r12175 diff -r 000000000000 foo/.hgsub
--- /dev/null
+++ b/foo/.hgsub
@@ -0,0 +1,1 @@
+bar = bar
diff -r 000000000000 foo/y.txt
--- /dev/null
+++ b/foo/y.txt
@@ -0,0 +1,1 @@
+y1
diff -r 000000000000 foo/bar/z.txt
--- /dev/null
+++ b/foo/bar/z.txt
@@ -0,0 +1,1 @@
+z1
Commits:
Martin Geisler
status: recurse into subrepositories with --subrepos/-S flag
r12166 $ hg commit -m 0-0-0
committing subrepository foo
committing subrepository foo/bar
$ cd foo
$ echo y2 >> y.txt
$ hg commit -m 0-1-0
$ cd bar
$ echo z2 >> z.txt
$ hg commit -m 0-1-1
$ cd ..
$ hg commit -m 0-2-1
committing subrepository bar
$ cd ..
$ hg commit -m 1-2-1
committing subrepository foo
Change working directory:
$ echo y3 >> foo/y.txt
$ echo z3 >> foo/bar/z.txt
Erik Zielke
test-subrepo-recursion: deleted default arguments...
r12588 $ hg status -S
Martin Geisler
status: recurse into subrepositories with --subrepos/-S flag
r12166 M foo/bar/z.txt
M foo/y.txt
Erik Zielke
test-subrepo-recursion: deleted default arguments...
r12588 $ hg diff --nodates -S
Martin Geisler
diff: recurse into subrepositories with --subrepos/-S flag
r12167 diff -r d254738c5f5e foo/y.txt
--- a/foo/y.txt
+++ b/foo/y.txt
@@ -1,2 +1,3 @@
y1
y2
+y3
diff -r 9647f22de499 foo/bar/z.txt
--- a/foo/bar/z.txt
+++ b/foo/bar/z.txt
@@ -1,2 +1,3 @@
z1
z2
+z3
Martin Geisler
status: recurse into subrepositories with --subrepos/-S flag
r12166
Status call crossing repository boundaries:
Erik Zielke
test-subrepo-recursion: deleted default arguments...
r12588 $ hg status -S foo/bar/z.txt
Martin Geisler
status: recurse into subrepositories with --subrepos/-S flag
r12166 M foo/bar/z.txt
Erik Zielke
test-subrepo-recursion: deleted default arguments...
r12588 $ hg status -S -I 'foo/?.txt'
Martin Geisler
status: recurse into subrepositories with --subrepos/-S flag
r12166 M foo/y.txt
Erik Zielke
test-subrepo-recursion: deleted default arguments...
r12588 $ hg status -S -I '**/?.txt'
Martin Geisler
status: recurse into subrepositories with --subrepos/-S flag
r12166 M foo/bar/z.txt
M foo/y.txt
Erik Zielke
test-subrepo-recursion: deleted default arguments...
r12588 $ hg diff --nodates -S -I '**/?.txt'
Martin Geisler
diff: recurse into subrepositories with --subrepos/-S flag
r12167 diff -r d254738c5f5e foo/y.txt
--- a/foo/y.txt
+++ b/foo/y.txt
@@ -1,2 +1,3 @@
y1
y2
+y3
diff -r 9647f22de499 foo/bar/z.txt
--- a/foo/bar/z.txt
+++ b/foo/bar/z.txt
@@ -1,2 +1,3 @@
z1
z2
+z3
Martin Geisler
status: recurse into subrepositories with --subrepos/-S flag
r12166
Status from within a subdirectory:
$ mkdir dir
$ cd dir
$ echo a1 > a.txt
Erik Zielke
test-subrepo-recursion: deleted default arguments...
r12588 $ hg status -S
Martin Geisler
status: recurse into subrepositories with --subrepos/-S flag
r12166 M foo/bar/z.txt
M foo/y.txt
? dir/a.txt
Erik Zielke
test-subrepo-recursion: deleted default arguments...
r12588 $ hg diff --nodates -S
Martin Geisler
diff: recurse into subrepositories with --subrepos/-S flag
r12167 diff -r d254738c5f5e foo/y.txt
--- a/foo/y.txt
+++ b/foo/y.txt
@@ -1,2 +1,3 @@
y1
y2
+y3
diff -r 9647f22de499 foo/bar/z.txt
--- a/foo/bar/z.txt
+++ b/foo/bar/z.txt
@@ -1,2 +1,3 @@
z1
z2
+z3
Martin Geisler
status: recurse into subrepositories with --subrepos/-S flag
r12166
Status with relative path:
Erik Zielke
test-subrepo-recursion: deleted default arguments...
r12588 $ hg status -S ..
Martin Geisler
status: recurse into subrepositories with --subrepos/-S flag
r12166 M ../foo/bar/z.txt
M ../foo/y.txt
? a.txt
Erik Zielke
test-subrepo-recursion: deleted default arguments...
r12588 $ hg diff --nodates -S ..
Martin Geisler
diff: recurse into subrepositories with --subrepos/-S flag
r12167 diff -r d254738c5f5e foo/y.txt
--- a/foo/y.txt
+++ b/foo/y.txt
@@ -1,2 +1,3 @@
y1
y2
+y3
diff -r 9647f22de499 foo/bar/z.txt
--- a/foo/bar/z.txt
+++ b/foo/bar/z.txt
@@ -1,2 +1,3 @@
z1
z2
+z3
Martin Geisler
status: recurse into subrepositories with --subrepos/-S flag
r12166 $ cd ..
Martin Geisler
diff: recurse into subrepositories with --subrepos/-S flag
r12167 Cleanup and final commit:
$ rm -r dir
$ hg commit -m 2-3-2
committing subrepository foo
committing subrepository foo/bar
Log with the relationships between repo and its subrepo:
$ hg log --template '{rev}:{node|short} {desc}\n'
2:1326fa26d0c0 2-3-2
1:4b3c9ff4f66b 1-2-1
0:23376cbba0d8 0-0-0
$ hg -R foo log --template '{rev}:{node|short} {desc}\n'
3:65903cebad86 2-3-2
2:d254738c5f5e 0-2-1
1:8629ce7dcc39 0-1-0
0:af048e97ade2 0-0-0
$ hg -R foo/bar log --template '{rev}:{node|short} {desc}\n'
2:31ecbdafd357 2-3-2
1:9647f22de499 0-1-1
0:4904098473f9 0-0-0
Martin Geisler
status: recurse into subrepositories with --subrepos/-S flag
r12166 Status between revisions:
Erik Zielke
test-subrepo-recursion: deleted default arguments...
r12588 $ hg status -S
$ hg status -S --rev 0:1
Martin Geisler
status: recurse into subrepositories with --subrepos/-S flag
r12166 M .hgsubstate
M foo/.hgsubstate
M foo/bar/z.txt
M foo/y.txt
Erik Zielke
test-subrepo-recursion: deleted default arguments...
r12588 $ hg diff --nodates -S -I '**/?.txt' --rev 0:1
Martin Geisler
diff: recurse into subrepositories with --subrepos/-S flag
r12167 diff -r af048e97ade2 -r d254738c5f5e foo/y.txt
--- a/foo/y.txt
+++ b/foo/y.txt
@@ -1,1 +1,2 @@
y1
+y2
diff -r 4904098473f9 -r 9647f22de499 foo/bar/z.txt
--- a/foo/bar/z.txt
+++ b/foo/bar/z.txt
@@ -1,1 +1,2 @@
z1
+z2
Martin Geisler
outgoing: recurse into subrepositories with --subrepos/-S flag...
r12272
Martin Geisler
subrepo: add support for 'hg archive'
r12323 Test archiving to a directory tree:
$ hg archive --subrepos ../archive
Patrick Mezard
test-subrepo-recursion: sort archive output for portability
r12363 $ find ../archive | sort
Martin Geisler
subrepo: add support for 'hg archive'
r12323 ../archive
Patrick Mezard
test-subrepo-recursion: sort archive output for portability
r12363 ../archive/.hg_archival.txt
../archive/.hgsub
../archive/.hgsubstate
Martin Geisler
subrepo: add support for 'hg archive'
r12323 ../archive/foo
Patrick Mezard
test-subrepo-recursion: sort archive output for portability
r12363 ../archive/foo/.hgsub
../archive/foo/.hgsubstate
Martin Geisler
subrepo: add support for 'hg archive'
r12323 ../archive/foo/bar
../archive/foo/bar/z.txt
../archive/foo/y.txt
../archive/x.txt
Matt Mackall
tests: fixup tests using unzip -l
r12339 Test archiving to zip file (unzip output is unstable):
Martin Geisler
subrepo: add support for 'hg archive'
r12323
$ hg archive --subrepos ../archive.zip
Martin Geisler
outgoing: recurse into subrepositories with --subrepos/-S flag...
r12272 Clone and test outgoing:
$ cd ..
$ hg clone repo repo2
updating to branch default
Mads Kiilerich
tests: remove redundant globs...
r12640 pulling subrepo foo from $TESTTMP/repo/foo
Martin Geisler
outgoing: recurse into subrepositories with --subrepos/-S flag...
r12272 requesting all changes
adding changesets
adding manifests
adding file changes
added 4 changesets with 7 changes to 3 files
Mads Kiilerich
tests: remove redundant globs...
r12640 pulling subrepo foo/bar from $TESTTMP/repo/foo/bar
Martin Geisler
outgoing: recurse into subrepositories with --subrepos/-S flag...
r12272 requesting all changes
adding changesets
adding manifests
adding file changes
added 3 changesets with 3 changes to 1 files
3 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ cd repo2
$ hg outgoing -S
Mads Kiilerich
tests: remove redundant globs...
r12640 comparing with $TESTTMP/repo
Martin Geisler
outgoing: recurse into subrepositories with --subrepos/-S flag...
r12272 searching for changes
no changes found
Mads Kiilerich
tests: remove redundant globs...
r12640 comparing with $TESTTMP/repo/foo
Martin Geisler
outgoing: recurse into subrepositories with --subrepos/-S flag...
r12272 searching for changes
no changes found
Mads Kiilerich
tests: remove redundant globs...
r12640 comparing with $TESTTMP/repo/foo/bar
Erik Zielke
incoming/outgoing: Fix recursion on sub repositories...
r12400 searching for changes
no changes found
Matt Mackall
tests: add exit codes to unified tests
r12316 [1]
Martin Geisler
outgoing: recurse into subrepositories with --subrepos/-S flag...
r12272
Make nested change:
$ echo y4 >> foo/y.txt
Erik Zielke
test-subrepo-recursion: deleted default arguments...
r12588 $ hg diff --nodates -S
Martin Geisler
outgoing: recurse into subrepositories with --subrepos/-S flag...
r12272 diff -r 65903cebad86 foo/y.txt
--- a/foo/y.txt
+++ b/foo/y.txt
@@ -1,3 +1,4 @@
y1
y2
y3
+y4
$ hg commit -m 3-4-2
committing subrepository foo
$ hg outgoing -S
Mads Kiilerich
tests: remove redundant globs...
r12640 comparing with $TESTTMP/repo
Martin Geisler
outgoing: recurse into subrepositories with --subrepos/-S flag...
r12272 searching for changes
changeset: 3:2655b8ecc4ee
tag: tip
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: 3-4-2
Mads Kiilerich
tests: remove redundant globs...
r12640 comparing with $TESTTMP/repo/foo
Martin Geisler
outgoing: recurse into subrepositories with --subrepos/-S flag...
r12272 searching for changes
changeset: 4:e96193d6cb36
tag: tip
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: 3-4-2
Mads Kiilerich
tests: remove redundant globs...
r12640 comparing with $TESTTMP/repo/foo/bar
Erik Zielke
incoming/outgoing: Fix recursion on sub repositories...
r12400 searching for changes
no changes found
Martin Geisler
incoming: recurse into subrepositories with --subrepos/-S flag...
r12274
Erik Zielke
test-subrepo-recursion: deleted default arguments...
r12588
Martin Geisler
incoming: recurse into subrepositories with --subrepos/-S flag...
r12274 Switch to original repo and setup default path:
$ cd ../repo
$ echo '[paths]' >> .hg/hgrc
$ echo 'default = ../repo2' >> .hg/hgrc
Test incoming:
$ hg incoming -S
Mads Kiilerich
tests: remove redundant globs...
r12640 comparing with $TESTTMP/repo2
Martin Geisler
incoming: recurse into subrepositories with --subrepos/-S flag...
r12274 searching for changes
changeset: 3:2655b8ecc4ee
tag: tip
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: 3-4-2
Mads Kiilerich
tests: remove redundant globs...
r12640 comparing with $TESTTMP/repo2/foo
Martin Geisler
incoming: recurse into subrepositories with --subrepos/-S flag...
r12274 searching for changes
changeset: 4:e96193d6cb36
tag: tip
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: 3-4-2
Mads Kiilerich
tests: remove redundant globs...
r12640 comparing with $TESTTMP/repo2/foo/bar
Erik Zielke
incoming/outgoing: Fix recursion on sub repositories...
r12400 searching for changes
no changes found
Martin Geisler
incoming: recurse into subrepositories with --subrepos/-S flag...
r12274 $ hg incoming -S --bundle incoming.hg
abort: cannot combine --bundle and --subrepos
Matt Mackall
tests: add exit codes to unified tests
r12316 [255]
Martin Geisler
incoming: recurse into subrepositories with --subrepos/-S flag...
r12274
Martin Geisler
test-subrepo-recursion: test missing subrepo
r12275 Test missing subrepo:
$ rm -r foo
Erik Zielke
test-subrepo-recursion: deleted default arguments...
r12588 $ hg status -S
Wagner Bruna
subrepo: improve lookup error messages
r12503 warning: error "unknown revision '65903cebad86f1a84bd4f1134f62fa7dcb7a1c98'" in subrepository "foo"
trbs
subrepo: fix pruning of subrepo filenames in dirstate (issue2619)
r13339
Issue2619: IndexError: list index out of range on hg add with subrepos
The subrepo must sorts after the explicit filename.
$ cd ..
$ hg init test
$ cd test
$ hg init x
$ echo "x = x" >> .hgsub
$ hg add .hgsub
$ touch a x/a
$ hg add a x/a