##// END OF EJS Templates
merge with stable
merge with stable

File last commit:

r16324:46b991a1 default
r16347:21b31e9c merge default
Show More
test-mq-subrepo.t
355 lines | 7.9 KiB | text/troff | Tads3Lexer
/ tests / test-mq-subrepo.t
Martin Geisler
subrepos: abort commit by default if a subrepo is dirty (BC)...
r15321 $ echo "[ui]" >> $HGRCPATH
$ echo "commitsubrepos = Yes" >> $HGRCPATH
Kevin Bullock
mq: update .hgsubstate if subrepos are clean (issue2499)...
r13174 $ echo "[extensions]" >> $HGRCPATH
$ echo "mq=" >> $HGRCPATH
$ echo "record=" >> $HGRCPATH
$ echo "[diff]" >> $HGRCPATH
$ echo "nodates=1" >> $HGRCPATH
Patrick Mezard
test-mq-subrepo.t: correctly forward stdin to test functions...
r13241 $ stdin=`pwd`/stdin.tmp
Kevin Bullock
mq: update .hgsubstate if subrepos are clean (issue2499)...
r13174 fn to create new repository w/dirty subrepo, and cd into it
$ mkrepo() {
> hg init $1
> cd $1
> hg qinit
> }
fn to create dirty subrepo
$ mksubrepo() {
> hg init $1
> cd $1
> echo a > a
> hg add
> cd ..
> }
$ testadd() {
Patrick Mezard
test-mq-subrepo.t: correctly forward stdin to test functions...
r13241 > cat - > "$stdin"
Kevin Bullock
mq: update .hgsubstate if subrepos are clean (issue2499)...
r13174 > mksubrepo sub
> echo sub = sub >> .hgsub
> hg add .hgsub
> echo % abort when adding .hgsub w/dirty subrepo
> hg status -S
> echo '%' $*
Patrick Mezard
test-mq-subrepo.t: correctly forward stdin to test functions...
r13241 > cat "$stdin" | hg $*
Kevin Bullock
mq: update .hgsubstate if subrepos are clean (issue2499)...
r13174 > echo [$?]
> hg -R sub ci -m0sub
> echo % update substate when adding .hgsub w/clean updated subrepo
> hg status -S
> echo '%' $*
Patrick Mezard
test-mq-subrepo.t: correctly forward stdin to test functions...
r13241 > cat "$stdin" | hg $*
Kevin Bullock
mq: update .hgsubstate if subrepos are clean (issue2499)...
r13174 > hg debugsub
> }
$ testmod() {
Patrick Mezard
test-mq-subrepo.t: correctly forward stdin to test functions...
r13241 > cat - > "$stdin"
Kevin Bullock
mq: update .hgsubstate if subrepos are clean (issue2499)...
r13174 > mksubrepo sub2
> echo sub2 = sub2 >> .hgsub
> echo % abort when modifying .hgsub w/dirty subrepo
> hg status -S
> echo '%' $*
Patrick Mezard
test-mq-subrepo.t: correctly forward stdin to test functions...
r13241 > cat "$stdin" | hg $*
Kevin Bullock
mq: update .hgsubstate if subrepos are clean (issue2499)...
r13174 > echo [$?]
> hg -R sub2 ci -m0sub2
> echo % update substate when modifying .hgsub w/clean updated subrepo
> hg status -S
> echo '%' $*
Patrick Mezard
test-mq-subrepo.t: correctly forward stdin to test functions...
r13241 > cat "$stdin" | hg $*
Kevin Bullock
mq: update .hgsubstate if subrepos are clean (issue2499)...
r13174 > hg debugsub
> }
$ testrm1() {
Patrick Mezard
test-mq-subrepo.t: correctly forward stdin to test functions...
r13241 > cat - > "$stdin"
Kevin Bullock
mq: update .hgsubstate if subrepos are clean (issue2499)...
r13174 > mksubrepo sub3
> echo sub3 = sub3 >> .hgsub
> hg ci -Aqmsub3
> $EXTRA
> echo b >> sub3/a
> hg rm .hgsub
> echo % update substate when removing .hgsub w/dirty subrepo
> hg status -S
> echo '%' $*
Patrick Mezard
test-mq-subrepo.t: correctly forward stdin to test functions...
r13241 > cat "$stdin" | hg $*
Kevin Bullock
mq: update .hgsubstate if subrepos are clean (issue2499)...
r13174 > echo % debugsub should be empty
> hg debugsub
> }
Patrick Mezard
test-mq-subrepo.t: correctly forward stdin to test functions...
r13241
Kevin Bullock
mq: update .hgsubstate if subrepos are clean (issue2499)...
r13174 $ testrm2() {
Patrick Mezard
test-mq-subrepo.t: correctly forward stdin to test functions...
r13241 > cat - > "$stdin"
Kevin Bullock
mq: update .hgsubstate if subrepos are clean (issue2499)...
r13174 > mksubrepo sub4
> echo sub4 = sub4 >> .hgsub
> hg ci -Aqmsub4
> $EXTRA
> hg rm .hgsub
> echo % update substate when removing .hgsub w/clean updated subrepo
> hg status -S
> echo '%' $*
Patrick Mezard
test-mq-subrepo.t: correctly forward stdin to test functions...
r13241 > cat "$stdin" | hg $*
Kevin Bullock
mq: update .hgsubstate if subrepos are clean (issue2499)...
r13174 > echo % debugsub should be empty
> hg debugsub
> }
handle subrepos safely on qnew
$ mkrepo repo-2499-qnew
$ testadd qnew -m0 0.diff
adding a
% abort when adding .hgsub w/dirty subrepo
A .hgsub
A sub/a
% qnew -m0 0.diff
abort: uncommitted changes in subrepository sub
[255]
% update substate when adding .hgsub w/clean updated subrepo
A .hgsub
% qnew -m0 0.diff
path sub
source sub
revision b2fdb12cd82b021c3b7053d67802e77b6eeaee31
$ testmod qnew -m1 1.diff
adding a
% abort when modifying .hgsub w/dirty subrepo
M .hgsub
A sub2/a
% qnew -m1 1.diff
abort: uncommitted changes in subrepository sub2
[255]
% update substate when modifying .hgsub w/clean updated subrepo
M .hgsub
% qnew -m1 1.diff
path sub
source sub
revision b2fdb12cd82b021c3b7053d67802e77b6eeaee31
path sub2
source sub2
revision 1f94c7611cc6b74f5a17b16121a1170d44776845
$ hg qpop -qa
patch queue now empty
$ testrm1 qnew -m2 2.diff
adding a
% update substate when removing .hgsub w/dirty subrepo
M sub3/a
R .hgsub
% qnew -m2 2.diff
% debugsub should be empty
$ hg qpop -qa
patch queue now empty
$ testrm2 qnew -m3 3.diff
adding a
% update substate when removing .hgsub w/clean updated subrepo
R .hgsub
% qnew -m3 3.diff
% debugsub should be empty
$ cd ..
handle subrepos safely on qrefresh
$ mkrepo repo-2499-qrefresh
$ hg qnew -m0 0.diff
$ testadd qrefresh
adding a
% abort when adding .hgsub w/dirty subrepo
A .hgsub
A sub/a
% qrefresh
abort: uncommitted changes in subrepository sub
[255]
% update substate when adding .hgsub w/clean updated subrepo
A .hgsub
% qrefresh
path sub
source sub
revision b2fdb12cd82b021c3b7053d67802e77b6eeaee31
$ hg qnew -m1 1.diff
$ testmod qrefresh
adding a
% abort when modifying .hgsub w/dirty subrepo
M .hgsub
A sub2/a
% qrefresh
abort: uncommitted changes in subrepository sub2
[255]
% update substate when modifying .hgsub w/clean updated subrepo
M .hgsub
% qrefresh
path sub
source sub
revision b2fdb12cd82b021c3b7053d67802e77b6eeaee31
path sub2
source sub2
revision 1f94c7611cc6b74f5a17b16121a1170d44776845
$ hg qpop -qa
patch queue now empty
Mads Kiilerich
tests: test-mq-subrepo.t Solaris 10 sh compliance...
r13510 $ EXTRA='hg qnew -m2 2.diff'
$ testrm1 qrefresh
Kevin Bullock
mq: update .hgsubstate if subrepos are clean (issue2499)...
r13174 adding a
% update substate when removing .hgsub w/dirty subrepo
M sub3/a
R .hgsub
% qrefresh
% debugsub should be empty
$ hg qpop -qa
patch queue now empty
Mads Kiilerich
tests: test-mq-subrepo.t Solaris 10 sh compliance...
r13510 $ EXTRA='hg qnew -m3 3.diff'
$ testrm2 qrefresh
Kevin Bullock
mq: update .hgsubstate if subrepos are clean (issue2499)...
r13174 adding a
% update substate when removing .hgsub w/clean updated subrepo
R .hgsub
% qrefresh
% debugsub should be empty
Mads Kiilerich
tests: test-mq-subrepo.t Solaris 10 sh compliance...
r13510 $ EXTRA=
Kevin Bullock
mq: update .hgsubstate if subrepos are clean (issue2499)...
r13174
$ cd ..
handle subrepos safely on qpush/qpop
$ mkrepo repo-2499-qpush
$ mksubrepo sub
adding a
$ hg -R sub ci -m0sub
$ echo sub = sub > .hgsub
$ hg add .hgsub
$ hg qnew -m0 0.diff
$ hg debugsub
path sub
source sub
revision b2fdb12cd82b021c3b7053d67802e77b6eeaee31
qpop
$ hg qpop
popping 0.diff
patch queue now empty
$ hg status -AS
$ hg debugsub
qpush
$ hg qpush
applying 0.diff
now at: 0.diff
$ hg status -AS
C .hgsub
C .hgsubstate
C sub/a
$ hg debugsub
path sub
source sub
revision b2fdb12cd82b021c3b7053d67802e77b6eeaee31
$ cd ..
handle subrepos safely on qrecord
$ mkrepo repo-2499-qrecord
$ testadd qrecord --config ui.interactive=1 -m0 0.diff <<EOF
> y
> y
> EOF
adding a
% abort when adding .hgsub w/dirty subrepo
A .hgsub
A sub/a
% qrecord --config ui.interactive=1 -m0 0.diff
diff --git a/.hgsub b/.hgsub
new file mode 100644
A. S. Budden
record: allow splitting of hunks by manually editing patches...
r16324 examine changes to '.hgsub'? [Ynesfdaq?]
Kevin Bullock
mq: update .hgsubstate if subrepos are clean (issue2499)...
r13174 abort: uncommitted changes in subrepository sub
[255]
% update substate when adding .hgsub w/clean updated subrepo
A .hgsub
% qrecord --config ui.interactive=1 -m0 0.diff
diff --git a/.hgsub b/.hgsub
new file mode 100644
A. S. Budden
record: allow splitting of hunks by manually editing patches...
r16324 examine changes to '.hgsub'? [Ynesfdaq?]
Kevin Bullock
mq: update .hgsubstate if subrepos are clean (issue2499)...
r13174 path sub
source sub
revision b2fdb12cd82b021c3b7053d67802e77b6eeaee31
$ testmod qrecord --config ui.interactive=1 -m1 1.diff <<EOF
> y
> y
> EOF
adding a
% abort when modifying .hgsub w/dirty subrepo
M .hgsub
A sub2/a
% qrecord --config ui.interactive=1 -m1 1.diff
diff --git a/.hgsub b/.hgsub
1 hunks, 1 lines changed
A. S. Budden
record: allow splitting of hunks by manually editing patches...
r16324 examine changes to '.hgsub'? [Ynesfdaq?]
Kevin Bullock
mq: update .hgsubstate if subrepos are clean (issue2499)...
r13174 @@ -1,1 +1,2 @@
sub = sub
+sub2 = sub2
A. S. Budden
record: allow splitting of hunks by manually editing patches...
r16324 record this change to '.hgsub'? [Ynesfdaq?]
Kevin Bullock
mq: update .hgsubstate if subrepos are clean (issue2499)...
r13174 abort: uncommitted changes in subrepository sub2
[255]
% update substate when modifying .hgsub w/clean updated subrepo
M .hgsub
% qrecord --config ui.interactive=1 -m1 1.diff
diff --git a/.hgsub b/.hgsub
1 hunks, 1 lines changed
A. S. Budden
record: allow splitting of hunks by manually editing patches...
r16324 examine changes to '.hgsub'? [Ynesfdaq?]
Kevin Bullock
mq: update .hgsubstate if subrepos are clean (issue2499)...
r13174 @@ -1,1 +1,2 @@
sub = sub
+sub2 = sub2
A. S. Budden
record: allow splitting of hunks by manually editing patches...
r16324 record this change to '.hgsub'? [Ynesfdaq?]
Kevin Bullock
mq: update .hgsubstate if subrepos are clean (issue2499)...
r13174 path sub
source sub
revision b2fdb12cd82b021c3b7053d67802e77b6eeaee31
path sub2
source sub2
revision 1f94c7611cc6b74f5a17b16121a1170d44776845
$ hg qpop -qa
patch queue now empty
Mads Kiilerich
tests: test-mq-subrepo.t Solaris 10 sh compliance...
r13510 $ testrm1 qrecord --config ui.interactive=1 -m2 2.diff <<EOF
Kevin Bullock
mq: update .hgsubstate if subrepos are clean (issue2499)...
r13174 > y
> y
> EOF
adding a
% update substate when removing .hgsub w/dirty subrepo
M sub3/a
R .hgsub
% qrecord --config ui.interactive=1 -m2 2.diff
diff --git a/.hgsub b/.hgsub
deleted file mode 100644
A. S. Budden
record: allow splitting of hunks by manually editing patches...
r16324 examine changes to '.hgsub'? [Ynesfdaq?]
Kevin Bullock
mq: update .hgsubstate if subrepos are clean (issue2499)...
r13174 % debugsub should be empty
$ hg qpop -qa
patch queue now empty
Mads Kiilerich
tests: test-mq-subrepo.t Solaris 10 sh compliance...
r13510 $ testrm2 qrecord --config ui.interactive=1 -m3 3.diff <<EOF
Kevin Bullock
mq: update .hgsubstate if subrepos are clean (issue2499)...
r13174 > y
> y
> EOF
adding a
% update substate when removing .hgsub w/clean updated subrepo
R .hgsub
% qrecord --config ui.interactive=1 -m3 3.diff
diff --git a/.hgsub b/.hgsub
deleted file mode 100644
A. S. Budden
record: allow splitting of hunks by manually editing patches...
r16324 examine changes to '.hgsub'? [Ynesfdaq?]
Kevin Bullock
mq: update .hgsubstate if subrepos are clean (issue2499)...
r13174 % debugsub should be empty
$ cd ..
Kevin Bullock
subrepo: don't commit in subrepo if it's clean...
r14898
correctly handle subrepos with patch queues
$ mkrepo repo-subrepo-with-queue
$ mksubrepo sub
adding a
$ hg -R sub qnew sub0.diff
$ echo sub = sub >> .hgsub
$ hg add .hgsub
$ hg qnew 0.diff