##// END OF EJS Templates
incoming/outgoing: Fix recursion on sub repositories...
incoming/outgoing: Fix recursion on sub repositories Incoming and outgoing are fixed so they go through the whole three of repositories instead of only visiting first level of sub repositories.

File last commit:

r12400:40852b4b default
r12400:40852b4b default
Show More
test-subrepo-recursion.t
353 lines | 6.9 KiB | text/troff | Tads3Lexer
/ tests / test-subrepo-recursion.t
Martin Geisler
status: recurse into subrepositories with --subrepos/-S flag
r12166 Make status look into subrepositories by default:
$ echo '[defaults]' >> $HGRCPATH
$ echo 'status = -S' >> $HGRCPATH
Martin Geisler
diff: recurse into subrepositories with --subrepos/-S flag
r12167 $ echo 'diff = --nodates -S' >> $HGRCPATH
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:
$ hg status
A .hgsub
A foo/.hgsub
A foo/bar/z.txt
A foo/y.txt
A x.txt
Test recursive diff without committing anything:
$ hg diff foo
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
$ hg status
M foo/bar/z.txt
M foo/y.txt
Martin Geisler
diff: recurse into subrepositories with --subrepos/-S flag
r12167 $ hg diff
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:
$ hg status foo/bar/z.txt
M foo/bar/z.txt
$ hg status -I 'foo/?.txt'
M foo/y.txt
$ hg status -I '**/?.txt'
M foo/bar/z.txt
M foo/y.txt
Martin Geisler
diff: recurse into subrepositories with --subrepos/-S flag
r12167 $ hg diff -I '**/?.txt'
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
$ hg status
M foo/bar/z.txt
M foo/y.txt
? dir/a.txt
Martin Geisler
diff: recurse into subrepositories with --subrepos/-S flag
r12167 $ hg diff
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:
$ hg status ..
M ../foo/bar/z.txt
M ../foo/y.txt
? a.txt
Martin Geisler
diff: recurse into subrepositories with --subrepos/-S flag
r12167 $ hg diff ..
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:
$ hg status
$ hg status --rev 0:1
M .hgsubstate
M foo/.hgsubstate
M foo/bar/z.txt
M foo/y.txt
Martin Geisler
diff: recurse into subrepositories with --subrepos/-S flag
r12167 $ hg diff -I '**/?.txt' --rev 0:1
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
Brodie Rao
tests: add glob matching for unified tests...
r12376 pulling subrepo foo from */test-subrepo-recursion.t/repo/foo (glob)
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
Brodie Rao
tests: add glob matching for unified tests...
r12376 pulling subrepo foo/bar from */test-subrepo-recursion.t/repo/foo/bar (glob)
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
Brodie Rao
tests: add glob matching for unified tests...
r12376 comparing with */test-subrepo-recursion.t/repo (glob)
Martin Geisler
outgoing: recurse into subrepositories with --subrepos/-S flag...
r12272 searching for changes
no changes found
Brodie Rao
tests: add glob matching for unified tests...
r12376 comparing with */test-subrepo-recursion.t/repo/foo (glob)
Martin Geisler
outgoing: recurse into subrepositories with --subrepos/-S flag...
r12272 searching for changes
no changes found
Erik Zielke
incoming/outgoing: Fix recursion on sub repositories...
r12400 comparing with */test-subrepo-recursion.t/repo/foo/bar (glob)
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
$ hg diff
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
Brodie Rao
tests: add glob matching for unified tests...
r12376 comparing with */test-subrepo-recursion.t/repo (glob)
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
Brodie Rao
tests: add glob matching for unified tests...
r12376 comparing with */test-subrepo-recursion.t/repo/foo (glob)
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
Erik Zielke
incoming/outgoing: Fix recursion on sub repositories...
r12400 comparing with */test-subrepo-recursion.t/repo/foo/bar (glob)
searching for changes
no changes found
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
Brodie Rao
tests: add glob matching for unified tests...
r12376 comparing with */test-subrepo-recursion.t/repo2 (glob)
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
Brodie Rao
tests: add glob matching for unified tests...
r12376 comparing with */test-subrepo-recursion.t/repo2/foo (glob)
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
Erik Zielke
incoming/outgoing: Fix recursion on sub repositories...
r12400 comparing with */test-subrepo-recursion.t/repo2/foo/bar (glob)
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
$ hg status
warning: unknown revision '65903cebad86f1a84bd4f1134f62fa7dcb7a1c98' in foo