test-mq-subrepo.t
388 lines
| 8.8 KiB
| text/troff
|
Tads3Lexer
/ tests / test-mq-subrepo.t
|
r13245 | $ "$TESTDIR/hghave" svn || exit 80 | ||
|
r13174 | $ echo "[extensions]" >> $HGRCPATH | ||
$ echo "mq=" >> $HGRCPATH | ||||
$ echo "record=" >> $HGRCPATH | ||||
$ echo "[diff]" >> $HGRCPATH | ||||
$ echo "nodates=1" >> $HGRCPATH | ||||
|
r13241 | $ stdin=`pwd`/stdin.tmp | ||
|
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() { | ||||
|
r13241 | > cat - > "$stdin" | ||
|
r13174 | > mksubrepo sub | ||
> echo sub = sub >> .hgsub | ||||
> hg add .hgsub | ||||
> echo % abort when adding .hgsub w/dirty subrepo | ||||
> hg status -S | ||||
> echo '%' $* | ||||
|
r13241 | > cat "$stdin" | hg $* | ||
|
r13174 | > echo [$?] | ||
> hg -R sub ci -m0sub | ||||
> echo % update substate when adding .hgsub w/clean updated subrepo | ||||
> hg status -S | ||||
> echo '%' $* | ||||
|
r13241 | > cat "$stdin" | hg $* | ||
|
r13174 | > hg debugsub | ||
> } | ||||
$ testmod() { | ||||
|
r13241 | > cat - > "$stdin" | ||
|
r13174 | > mksubrepo sub2 | ||
> echo sub2 = sub2 >> .hgsub | ||||
> echo % abort when modifying .hgsub w/dirty subrepo | ||||
> hg status -S | ||||
> echo '%' $* | ||||
|
r13241 | > cat "$stdin" | hg $* | ||
|
r13174 | > echo [$?] | ||
> hg -R sub2 ci -m0sub2 | ||||
> echo % update substate when modifying .hgsub w/clean updated subrepo | ||||
> hg status -S | ||||
> echo '%' $* | ||||
|
r13241 | > cat "$stdin" | hg $* | ||
|
r13174 | > hg debugsub | ||
> } | ||||
$ testrm1() { | ||||
|
r13241 | > cat - > "$stdin" | ||
|
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 '%' $* | ||||
|
r13241 | > cat "$stdin" | hg $* | ||
|
r13174 | > echo % debugsub should be empty | ||
> hg debugsub | ||||
> } | ||||
|
r13241 | |||
|
r13174 | $ testrm2() { | ||
|
r13241 | > cat - > "$stdin" | ||
|
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 '%' $* | ||||
|
r13241 | > cat "$stdin" | hg $* | ||
|
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 | ||||
committing subrepository sub | ||||
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 | ||||
committing subrepository sub2 | ||||
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 | ||||
committing subrepository sub | ||||
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 | ||||
committing subrepository sub2 | ||||
path sub | ||||
source sub | ||||
revision b2fdb12cd82b021c3b7053d67802e77b6eeaee31 | ||||
path sub2 | ||||
source sub2 | ||||
revision 1f94c7611cc6b74f5a17b16121a1170d44776845 | ||||
$ hg qpop -qa | ||||
patch queue now empty | ||||
$ EXTRA='hg qnew -m2 2.diff' testrm1 qrefresh | ||||
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 | ||||
$ EXTRA='hg qnew -m3 3.diff' testrm2 qrefresh | ||||
adding a | ||||
% update substate when removing .hgsub w/clean updated subrepo | ||||
R .hgsub | ||||
% qrefresh | ||||
% debugsub should be empty | ||||
$ 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 | ||||
committing subrepository sub | ||||
$ 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 | ||||
examine changes to '.hgsub'? [Ynsfdaq?] | ||||
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 | ||||
examine changes to '.hgsub'? [Ynsfdaq?] | ||||
committing subrepository sub | ||||
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 | ||||
examine changes to '.hgsub'? [Ynsfdaq?] | ||||
@@ -1,1 +1,2 @@ | ||||
sub = sub | ||||
+sub2 = sub2 | ||||
record this change to '.hgsub'? [Ynsfdaq?] | ||||
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 | ||||
examine changes to '.hgsub'? [Ynsfdaq?] | ||||
@@ -1,1 +1,2 @@ | ||||
sub = sub | ||||
+sub2 = sub2 | ||||
record this change to '.hgsub'? [Ynsfdaq?] | ||||
committing subrepository sub2 | ||||
path sub | ||||
source sub | ||||
revision b2fdb12cd82b021c3b7053d67802e77b6eeaee31 | ||||
path sub2 | ||||
source sub2 | ||||
revision 1f94c7611cc6b74f5a17b16121a1170d44776845 | ||||
$ hg qpop -qa | ||||
patch queue now empty | ||||
$ EXTRA= testrm1 qrecord --config ui.interactive=1 -m2 2.diff <<EOF | ||||
> 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 | ||||
examine changes to '.hgsub'? [Ynsfdaq?] | ||||
% debugsub should be empty | ||||
$ hg qpop -qa | ||||
patch queue now empty | ||||
$ EXTRA= testrm2 qrecord --config ui.interactive=1 -m3 3.diff <<EOF | ||||
> 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 | ||||
examine changes to '.hgsub'? [Ynsfdaq?] | ||||
% debugsub should be empty | ||||
$ cd .. | ||||
|
r13242 | |||
handle svn subrepos safely | ||||
$ svnadmin create svn-repo-2499 | ||||
$ curpath=`pwd | tr '\\\\' /` | ||||
$ expr "$svnpath" : "\/" > /dev/null | ||||
> if [ $? -ne 0 ]; then | ||||
> curpath="/$curpath" | ||||
> fi | ||||
$ svnurl="file://$curpath/svn-repo-2499/project" | ||||
$ mkdir -p svn-project-2499/trunk | ||||
$ svn import -m 'init project' svn-project-2499 "$svnurl" | ||||
Adding svn-project-2499/trunk | ||||
Committed revision 1. | ||||
qnew on repo w/svn subrepo | ||||
$ mkrepo repo-2499-svn-subrepo | ||||
$ svn co "$svnurl"/trunk sub | ||||
Checked out revision 1. | ||||
$ echo 'sub = [svn]sub' >> .hgsub | ||||
$ hg add .hgsub | ||||
$ hg status -S | ||||
A .hgsub | ||||
? sub/.svn/entries | ||||
$ hg qnew -m0 0.diff | ||||
committing subrepository sub | ||||
$ cd sub | ||||
$ echo a > a | ||||
$ svn add a | ||||
A a | ||||
$ svn st | ||||
A a | ||||
$ cd .. | ||||
$ hg status -S # doesn't show status for svn subrepos (yet) | ||||
$ hg qnew -m1 1.diff | ||||
abort: uncommitted changes in subrepository sub | ||||
[255] | ||||