test-amend.t
451 lines
| 11.8 KiB
| text/troff
|
Tads3Lexer
/ tests / test-amend.t
Jun Wu
|
r33404 | #testcases obsstore-off obsstore-on | ||
$ cat << EOF >> $HGRCPATH | ||||
> [extensions] | ||||
> amend= | ||||
> debugdrawdag=$TESTDIR/drawdag.py | ||||
> [diff] | ||||
> git=1 | ||||
> EOF | ||||
#if obsstore-on | ||||
$ cat << EOF >> $HGRCPATH | ||||
> [experimental] | ||||
Boris Feld
|
r34867 | > evolution.createmarkers=True | ||
Jun Wu
|
r33404 | > EOF | ||
#endif | ||||
Basic amend | ||||
$ hg init repo1 | ||||
$ cd repo1 | ||||
$ hg debugdrawdag <<'EOS' | ||||
> B | ||||
> | | ||||
> A | ||||
> EOS | ||||
$ hg update B -q | ||||
$ echo 2 >> B | ||||
Jun Wu
|
r34055 | $ hg amend | ||
Matt Harbison
|
r35394 | saved backup bundle to $TESTTMP/repo1/.hg/strip-backup/112478962961-7e959a55-amend.hg (obsstore-off !) | ||
Jun Wu
|
r33404 | #if obsstore-off | ||
$ hg log -p -G --hidden -T '{rev} {node|short} {desc}\n' | ||||
@ 1 be169c7e8dbe B | ||||
| diff --git a/B b/B | ||||
| new file mode 100644 | ||||
| --- /dev/null | ||||
| +++ b/B | ||||
| @@ -0,0 +1,1 @@ | ||||
| +B2 | ||||
| | ||||
o 0 426bada5c675 A | ||||
diff --git a/A b/A | ||||
new file mode 100644 | ||||
--- /dev/null | ||||
+++ b/A | ||||
@@ -0,0 +1,1 @@ | ||||
+A | ||||
\ No newline at end of file | ||||
#else | ||||
$ hg log -p -G --hidden -T '{rev} {node|short} {desc}\n' | ||||
Saurabh Singh
|
r34087 | @ 2 be169c7e8dbe B | ||
Jun Wu
|
r33404 | | diff --git a/B b/B | ||
| new file mode 100644 | ||||
| --- /dev/null | ||||
| +++ b/B | ||||
| @@ -0,0 +1,1 @@ | ||||
| +B2 | ||||
| | ||||
| x 1 112478962961 B | ||||
|/ diff --git a/B b/B | ||||
| new file mode 100644 | ||||
| --- /dev/null | ||||
| +++ b/B | ||||
| @@ -0,0 +1,1 @@ | ||||
| +B | ||||
| \ No newline at end of file | ||||
| | ||||
o 0 426bada5c675 A | ||||
diff --git a/A b/A | ||||
new file mode 100644 | ||||
--- /dev/null | ||||
+++ b/A | ||||
@@ -0,0 +1,1 @@ | ||||
+A | ||||
\ No newline at end of file | ||||
#endif | ||||
Nothing changed | ||||
$ hg amend | ||||
nothing changed | ||||
[1] | ||||
Boris Feld
|
r34123 | $ hg amend -d "0 0" | ||
nothing changed | ||||
[1] | ||||
$ hg amend -d "Thu Jan 01 00:00:00 1970 UTC" | ||||
nothing changed | ||||
[1] | ||||
Jun Wu
|
r33404 | Matcher and metadata options | ||
$ echo 3 > C | ||||
$ echo 4 > D | ||||
$ hg add C D | ||||
Jun Wu
|
r34055 | $ hg amend -m NEWMESSAGE -I C | ||
Matt Harbison
|
r35394 | saved backup bundle to $TESTTMP/repo1/.hg/strip-backup/be169c7e8dbe-7684ddc5-amend.hg (obsstore-off !) | ||
Jun Wu
|
r33404 | $ hg log -r . -T '{node|short} {desc} {files}\n' | ||
c7ba14d9075b NEWMESSAGE B C | ||||
$ echo 5 > E | ||||
$ rm C | ||||
Jun Wu
|
r34055 | $ hg amend -d '2000 1000' -u 'Foo <foo@example.com>' -A C D | ||
Matt Harbison
|
r35394 | saved backup bundle to $TESTTMP/repo1/.hg/strip-backup/c7ba14d9075b-b3e76daa-amend.hg (obsstore-off !) | ||
Jun Wu
|
r33404 | $ hg log -r . -T '{node|short} {desc} {files} {author} {date}\n' | ||
Yuya Nishihara
|
r38318 | 14f6c4bcc865 NEWMESSAGE B D Foo <foo@example.com> 2000.01000 | ||
Jun Wu
|
r33404 | |||
Amend with editor | ||||
$ cat > $TESTTMP/prefix.sh <<'EOF' | ||||
> printf 'EDITED: ' > $TESTTMP/msg | ||||
> cat "$1" >> $TESTTMP/msg | ||||
> mv $TESTTMP/msg "$1" | ||||
> EOF | ||||
$ chmod +x $TESTTMP/prefix.sh | ||||
Jun Wu
|
r34055 | $ HGEDITOR="sh $TESTTMP/prefix.sh" hg amend --edit | ||
Matt Harbison
|
r35394 | saved backup bundle to $TESTTMP/repo1/.hg/strip-backup/14f6c4bcc865-6591f15d-amend.hg (obsstore-off !) | ||
Jun Wu
|
r33404 | $ hg log -r . -T '{node|short} {desc}\n' | ||
298f085230c3 EDITED: NEWMESSAGE | ||||
Jun Wu
|
r34055 | $ HGEDITOR="sh $TESTTMP/prefix.sh" hg amend -e -m MSG | ||
Matt Harbison
|
r35394 | saved backup bundle to $TESTTMP/repo1/.hg/strip-backup/298f085230c3-d81a6ad3-amend.hg (obsstore-off !) | ||
Jun Wu
|
r33404 | $ hg log -r . -T '{node|short} {desc}\n' | ||
974f07f28537 EDITED: MSG | ||||
$ echo FOO > $TESTTMP/msg | ||||
$ hg amend -l $TESTTMP/msg -m BAR | ||||
abort: options --message and --logfile are mutually exclusive | ||||
[255] | ||||
Jun Wu
|
r34055 | $ hg amend -l $TESTTMP/msg | ||
Matt Harbison
|
r35394 | saved backup bundle to $TESTTMP/repo1/.hg/strip-backup/974f07f28537-edb6470a-amend.hg (obsstore-off !) | ||
Jun Wu
|
r33404 | $ hg log -r . -T '{node|short} {desc}\n' | ||
507be9bdac71 FOO | ||||
Interactive mode | ||||
$ touch F G | ||||
$ hg add F G | ||||
Jun Wu
|
r34055 | $ cat <<EOS | hg amend -i --config ui.interactive=1 | ||
Jun Wu
|
r33404 | > y | ||
> n | ||||
> EOS | ||||
diff --git a/F b/F | ||||
new file mode 100644 | ||||
examine changes to 'F'? [Ynesfdaq?] y | ||||
diff --git a/G b/G | ||||
new file mode 100644 | ||||
examine changes to 'G'? [Ynesfdaq?] n | ||||
Matt Harbison
|
r35394 | saved backup bundle to $TESTTMP/repo1/.hg/strip-backup/507be9bdac71-c8077452-amend.hg (obsstore-off !) | ||
Jun Wu
|
r33404 | $ hg log -r . -T '{files}\n' | ||
B D F | ||||
Amend in the middle of a stack | ||||
$ hg init $TESTTMP/repo2 | ||||
$ cd $TESTTMP/repo2 | ||||
$ hg debugdrawdag <<'EOS' | ||||
> C | ||||
> | | ||||
> B | ||||
> | | ||||
> A | ||||
> EOS | ||||
$ hg update -q B | ||||
$ echo 2 >> B | ||||
$ hg amend | ||||
abort: cannot amend changeset with children | ||||
[255] | ||||
#if obsstore-on | ||||
With allowunstable, amend could work in the middle of a stack | ||||
$ cat >> $HGRCPATH <<EOF | ||||
> [experimental] | ||||
Boris Feld
|
r34867 | > evolution.createmarkers=True | ||
Boris Feld
|
r34868 | > evolution.allowunstable=True | ||
Jun Wu
|
r33404 | > EOF | ||
$ hg amend | ||||
Martin von Zweigbergk
|
r35727 | 1 new orphan changesets | ||
Jun Wu
|
r33404 | $ hg log -T '{rev} {node|short} {desc}\n' -G | ||
Saurabh Singh
|
r34087 | @ 3 be169c7e8dbe B | ||
Jun Wu
|
r33404 | | | ||
r35524 | | * 2 26805aba1e60 C | |||
Jun Wu
|
r33404 | | | | ||
| x 1 112478962961 B | ||||
|/ | ||||
o 0 426bada5c675 A | ||||
Pulkit Goyal
|
r34796 | Checking the note stored in the obsmarker | ||
$ echo foo > bar | ||||
$ hg add bar | ||||
Pulkit Goyal
|
r34890 | $ hg amend --note 'yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy' | ||
abort: cannot store a note of more than 255 bytes | ||||
[255] | ||||
Pulkit Goyal
|
r34796 | $ hg amend --note "adding bar" | ||
$ hg debugobsolete -r . | ||||
Boris Feld
|
r34962 | 112478962961147124edd43549aedd1a335e44bf be169c7e8dbe21cd10b3d79691cbe7f241e3c21c 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '8', 'operation': 'amend', 'user': 'test'} | ||
be169c7e8dbe21cd10b3d79691cbe7f241e3c21c 16084da537dd8f84cfdb3055c633772269d62e1b 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '8', 'note': 'adding bar', 'operation': 'amend', 'user': 'test'} | ||||
Jun Wu
|
r33404 | #endif | ||
Cannot amend public changeset | ||||
$ hg phase -r A --public | ||||
$ hg update -C -q A | ||||
Jun Wu
|
r34055 | $ hg amend -m AMEND | ||
Jun Wu
|
r33404 | abort: cannot amend public changesets | ||
Pulkit Goyal
|
r35244 | (see 'hg help phases' for details) | ||
Jun Wu
|
r33404 | [255] | ||
Amend a merge changeset | ||||
$ hg init $TESTTMP/repo3 | ||||
$ cd $TESTTMP/repo3 | ||||
$ hg debugdrawdag <<'EOS' | ||||
> C | ||||
> /| | ||||
> A B | ||||
> EOS | ||||
$ hg update -q C | ||||
Jun Wu
|
r34055 | $ hg amend -m FOO | ||
Matt Harbison
|
r35394 | saved backup bundle to $TESTTMP/repo3/.hg/strip-backup/a35c07e8a2a4-15ff4612-amend.hg (obsstore-off !) | ||
Jun Wu
|
r33404 | $ rm .hg/localtags | ||
$ hg log -G -T '{desc}\n' | ||||
@ FOO | ||||
|\ | ||||
| o B | ||||
| | ||||
o A | ||||
Yuya Nishihara
|
r35014 | |||
More complete test for status changes (issue5732) | ||||
------------------------------------------------- | ||||
Generates history of files having 3 states, r0_r1_wc: | ||||
r0: ground (content/missing) | ||||
r1: old state to be amended (content/missing, where missing means removed) | ||||
wc: changes to be included in r1 (content/missing-tracked/untracked) | ||||
$ hg init $TESTTMP/wcstates | ||||
$ cd $TESTTMP/wcstates | ||||
Matt Harbison
|
r39743 | $ "$PYTHON" $TESTDIR/generate-working-copy-states.py state 2 1 | ||
Yuya Nishihara
|
r35014 | $ hg addremove -q --similarity 0 | ||
$ hg commit -m0 | ||||
Matt Harbison
|
r39743 | $ "$PYTHON" $TESTDIR/generate-working-copy-states.py state 2 2 | ||
Yuya Nishihara
|
r35014 | $ hg addremove -q --similarity 0 | ||
$ hg commit -m1 | ||||
Matt Harbison
|
r39743 | $ "$PYTHON" $TESTDIR/generate-working-copy-states.py state 2 wc | ||
Yuya Nishihara
|
r35014 | $ hg addremove -q --similarity 0 | ||
$ hg forget *_*_*-untracked | ||||
$ rm *_*_missing-* | ||||
amend r1 to include wc changes | ||||
$ hg amend | ||||
saved backup bundle to * (glob) (obsstore-off !) | ||||
clean/modified/removed/added states of the amended revision | ||||
$ hg status --all --change . 'glob:content1_*_content1-tracked' | ||||
C content1_content1_content1-tracked | ||||
C content1_content2_content1-tracked | ||||
C content1_missing_content1-tracked | ||||
$ hg status --all --change . 'glob:content1_*_content[23]-tracked' | ||||
M content1_content1_content3-tracked | ||||
M content1_content2_content2-tracked | ||||
M content1_content2_content3-tracked | ||||
M content1_missing_content3-tracked | ||||
$ hg status --all --change . 'glob:content1_*_missing-tracked' | ||||
M content1_content2_missing-tracked | ||||
R content1_missing_missing-tracked | ||||
C content1_content1_missing-tracked | ||||
$ hg status --all --change . 'glob:content1_*_*-untracked' | ||||
Yuya Nishihara
|
r35015 | R content1_content1_content1-untracked | ||
R content1_content1_content3-untracked | ||||
Yuya Nishihara
|
r35014 | R content1_content1_missing-untracked | ||
Yuya Nishihara
|
r35015 | R content1_content2_content1-untracked | ||
R content1_content2_content2-untracked | ||||
R content1_content2_content3-untracked | ||||
Yuya Nishihara
|
r35014 | R content1_content2_missing-untracked | ||
R content1_missing_content1-untracked | ||||
R content1_missing_content3-untracked | ||||
R content1_missing_missing-untracked | ||||
$ hg status --all --change . 'glob:missing_content2_*' | ||||
A missing_content2_content2-tracked | ||||
A missing_content2_content3-tracked | ||||
Yuya Nishihara
|
r35016 | A missing_content2_missing-tracked | ||
Yuya Nishihara
|
r35014 | $ hg status --all --change . 'glob:missing_missing_*' | ||
A missing_missing_content3-tracked | ||||
working directory should be all clean (with some missing/untracked files) | ||||
$ hg status --all 'glob:*_content?-tracked' | ||||
C content1_content1_content1-tracked | ||||
C content1_content1_content3-tracked | ||||
C content1_content2_content1-tracked | ||||
C content1_content2_content2-tracked | ||||
C content1_content2_content3-tracked | ||||
C content1_missing_content1-tracked | ||||
C content1_missing_content3-tracked | ||||
C missing_content2_content2-tracked | ||||
C missing_content2_content3-tracked | ||||
C missing_missing_content3-tracked | ||||
$ hg status --all 'glob:*_missing-tracked' | ||||
! content1_content1_missing-tracked | ||||
! content1_content2_missing-tracked | ||||
! content1_missing_missing-tracked | ||||
! missing_content2_missing-tracked | ||||
! missing_missing_missing-tracked | ||||
$ hg status --all 'glob:*-untracked' | ||||
? content1_content1_content1-untracked | ||||
? content1_content1_content3-untracked | ||||
? content1_content2_content1-untracked | ||||
? content1_content2_content2-untracked | ||||
? content1_content2_content3-untracked | ||||
? content1_missing_content1-untracked | ||||
? content1_missing_content3-untracked | ||||
? missing_content2_content2-untracked | ||||
? missing_content2_content3-untracked | ||||
? missing_missing_content3-untracked | ||||
Sushil khanchi
|
r38853 | |||
Yuya Nishihara
|
r41242 | ================================= | ||
Test backup-bundle config option| | ||||
================================= | ||||
Sushil khanchi
|
r38853 | $ hg init $TESTTMP/repo4 | ||
$ cd $TESTTMP/repo4 | ||||
$ echo a>a | ||||
$ hg ci -Aqma | ||||
$ echo oops>b | ||||
$ hg ci -Aqm "b" | ||||
$ echo partiallyfixed > b | ||||
#if obsstore-off | ||||
$ hg amend | ||||
saved backup bundle to $TESTTMP/repo4/.hg/strip-backup/95e899acf2ce-f11cb050-amend.hg | ||||
Yuya Nishihara
|
r41242 | When backup-bundle config option is set: | ||
Sushil khanchi
|
r38853 | $ cat << EOF >> $HGRCPATH | ||
Yuya Nishihara
|
r41242 | > [rewrite] | ||
> backup-bundle = False | ||||
Sushil khanchi
|
r38853 | > EOF | ||
$ echo fixed > b | ||||
$ hg amend | ||||
#else | ||||
$ hg amend | ||||
Yuya Nishihara
|
r41242 | When backup-bundle config option is set: | ||
Sushil khanchi
|
r38853 | $ cat << EOF >> $HGRCPATH | ||
Yuya Nishihara
|
r41242 | > [rewrite] | ||
> backup-bundle = False | ||||
Sushil khanchi
|
r38853 | > EOF | ||
$ echo fixed > b | ||||
$ hg amend | ||||
#endif | ||||
Taapas Agrawal
|
r41155 | ========================================== | ||
Test update-timestamp config option| | ||||
========================================== | ||||
$ cat >> $HGRCPATH << EOF | ||||
> [extensions] | ||||
> amend= | ||||
Taapas Agrawal
|
r41250 | > mockmakedate = $TESTDIR/mockmakedate.py | ||
Taapas Agrawal
|
r41155 | > EOF | ||
$ hg init $TESTTMP/repo5 | ||||
$ cd $TESTTMP/repo5 | ||||
Yuya Nishihara
|
r41157 | $ cat <<'EOF' >> .hg/hgrc | ||
> [ui] | ||||
> logtemplate = 'user: {user} | ||||
> date: {date|date} | ||||
> summary: {desc|firstline}\n' | ||||
> EOF | ||||
Taapas Agrawal
|
r41155 | $ echo a>a | ||
$ hg ci -Am 'commit 1' | ||||
adding a | ||||
When updatetimestamp is False | ||||
$ hg amend --date '1997-1-1 0:1' | ||||
$ hg log --limit 1 | ||||
user: test | ||||
date: Wed Jan 01 00:01:00 1997 +0000 | ||||
summary: commit 1 | ||||
Yuya Nishihara
|
r41157 | |||
Taapas Agrawal
|
r41155 | When update-timestamp is True and no other change than the date | ||
$ hg amend --config rewrite.update-timestamp=True | ||||
nothing changed | ||||
[1] | ||||
$ hg log --limit 1 | ||||
user: test | ||||
date: Wed Jan 01 00:01:00 1997 +0000 | ||||
summary: commit 1 | ||||
Yuya Nishihara
|
r41157 | |||
Taapas Agrawal
|
r41155 | When update-timestamp is True and there is other change than the date | ||
$ hg amend --user foobar --config rewrite.update-timestamp=True | ||||
$ hg log --limit 1 | ||||
user: foobar | ||||
date: Thu Jan 01 00:00:02 1970 +0000 | ||||
summary: commit 1 | ||||
When date option is applicable and update-timestamp is True | ||||
$ hg amend --date '1998-1-1 0:1' --config rewrite.update-timestamp=True | ||||
$ hg log --limit 1 | ||||
user: foobar | ||||
date: Thu Jan 01 00:01:00 1998 +0000 | ||||
summary: commit 1 | ||||
Yuya Nishihara
|
r41160 | |||
Unlike rewrite.update-timestamp, -D/--currentdate always updates the timestamp | ||||
$ hg amend -D | ||||
$ hg log --limit 1 | ||||
user: foobar | ||||
date: Thu Jan 01 00:00:04 1970 +0000 | ||||
summary: commit 1 | ||||
$ hg amend -D --config rewrite.update-timestamp=True | ||||
$ hg log --limit 1 | ||||
user: foobar | ||||
date: Thu Jan 01 00:00:05 1970 +0000 | ||||
summary: commit 1 | ||||
Yuya Nishihara
|
r41209 | rewrite.update-timestamp can be negated by --no-currentdate | ||
$ hg amend --config rewrite.update-timestamp=True --no-currentdate -u baz | ||||
$ hg log --limit 1 | ||||
user: baz | ||||
date: Thu Jan 01 00:00:05 1970 +0000 | ||||
summary: commit 1 | ||||
Yuya Nishihara
|
r41160 | Bad combination of date options: | ||
$ hg amend -D --date '0 0' | ||||
abort: --date and --currentdate are mutually exclusive | ||||
[255] | ||||
$ cd .. | ||||