test-commit-interactive.t
1809 lines
| 36.4 KiB
| text/troff
|
Tads3Lexer
/ tests / test-commit-interactive.t
Laurent Charignon
|
r24279 | Set up a repo | ||
$ cat <<EOF >> $HGRCPATH | ||||
> [ui] | ||||
> interactive = true | ||||
> [extensions] | ||||
> record = | ||||
> EOF | ||||
$ hg init a | ||||
$ cd a | ||||
Select no files | ||||
$ touch empty-rw | ||||
$ hg add empty-rw | ||||
FUJIWARA Katsunori
|
r25796 | $ hg record --config ui.interactive=false | ||
abort: running non-interactively, use commit instead | ||||
[255] | ||||
$ hg commit -i --config ui.interactive=false | ||||
abort: running non-interactively | ||||
[255] | ||||
Laurent Charignon
|
r24279 | $ hg commit -i empty-rw<<EOF | ||
> n | ||||
> EOF | ||||
diff --git a/empty-rw b/empty-rw | ||||
new file mode 100644 | ||||
examine changes to 'empty-rw'? [Ynesfdaq?] n | ||||
no changes to record | ||||
Philippe Pepiot
|
r30157 | [1] | ||
Laurent Charignon
|
r24279 | |||
$ hg tip -p | ||||
changeset: -1:000000000000 | ||||
tag: tip | ||||
user: | ||||
date: Thu Jan 01 00:00:00 1970 +0000 | ||||
Select files but no hunks | ||||
$ hg commit -i empty-rw<<EOF | ||||
> y | ||||
> n | ||||
> EOF | ||||
diff --git a/empty-rw b/empty-rw | ||||
new file mode 100644 | ||||
examine changes to 'empty-rw'? [Ynesfdaq?] y | ||||
abort: empty commit message | ||||
[255] | ||||
$ hg tip -p | ||||
changeset: -1:000000000000 | ||||
tag: tip | ||||
user: | ||||
date: Thu Jan 01 00:00:00 1970 +0000 | ||||
timeless
|
r28815 | Abort for untracked | ||
$ touch untracked | ||||
$ hg commit -i -m should-fail empty-rw untracked | ||||
abort: untracked: file not tracked! | ||||
[255] | ||||
$ rm untracked | ||||
Laurent Charignon
|
r24279 | Record empty file | ||
$ hg commit -i -d '0 0' -m empty empty-rw<<EOF | ||||
> y | ||||
> y | ||||
> EOF | ||||
diff --git a/empty-rw b/empty-rw | ||||
new file mode 100644 | ||||
examine changes to 'empty-rw'? [Ynesfdaq?] y | ||||
$ hg tip -p | ||||
changeset: 0:c0708cf4e46e | ||||
tag: tip | ||||
user: test | ||||
date: Thu Jan 01 00:00:00 1970 +0000 | ||||
summary: empty | ||||
Summary shows we updated to the new cset | ||||
$ hg summary | ||||
parent: 0:c0708cf4e46e tip | ||||
empty | ||||
branch: default | ||||
commit: (clean) | ||||
update: (current) | ||||
Gilles Moris
|
r25382 | phases: 1 draft | ||
Laurent Charignon
|
r24279 | |||
Rename empty file | ||||
$ hg mv empty-rw empty-rename | ||||
$ hg commit -i -d '1 0' -m rename<<EOF | ||||
> y | ||||
> EOF | ||||
diff --git a/empty-rw b/empty-rename | ||||
rename from empty-rw | ||||
rename to empty-rename | ||||
examine changes to 'empty-rw' and 'empty-rename'? [Ynesfdaq?] y | ||||
$ hg tip -p | ||||
changeset: 1:d695e8dcb197 | ||||
tag: tip | ||||
user: test | ||||
date: Thu Jan 01 00:00:01 1970 +0000 | ||||
summary: rename | ||||
Copy empty file | ||||
$ hg cp empty-rename empty-copy | ||||
$ hg commit -i -d '2 0' -m copy<<EOF | ||||
> y | ||||
> EOF | ||||
diff --git a/empty-rename b/empty-copy | ||||
copy from empty-rename | ||||
copy to empty-copy | ||||
examine changes to 'empty-rename' and 'empty-copy'? [Ynesfdaq?] y | ||||
$ hg tip -p | ||||
changeset: 2:1d4b90bea524 | ||||
tag: tip | ||||
user: test | ||||
date: Thu Jan 01 00:00:02 1970 +0000 | ||||
summary: copy | ||||
Delete empty file | ||||
$ hg rm empty-copy | ||||
$ hg commit -i -d '3 0' -m delete<<EOF | ||||
> y | ||||
> EOF | ||||
diff --git a/empty-copy b/empty-copy | ||||
deleted file mode 100644 | ||||
examine changes to 'empty-copy'? [Ynesfdaq?] y | ||||
$ hg tip -p | ||||
changeset: 3:b39a238f01a1 | ||||
tag: tip | ||||
user: test | ||||
date: Thu Jan 01 00:00:03 1970 +0000 | ||||
summary: delete | ||||
Add binary file | ||||
Pierre-Yves David
|
r26863 | $ hg bundle --type v1 --base -2 tip.bundle | ||
Laurent Charignon
|
r24279 | 1 changesets found | ||
$ hg add tip.bundle | ||||
$ hg commit -i -d '4 0' -m binary<<EOF | ||||
> y | ||||
> EOF | ||||
diff --git a/tip.bundle b/tip.bundle | ||||
new file mode 100644 | ||||
this is a binary file | ||||
examine changes to 'tip.bundle'? [Ynesfdaq?] y | ||||
$ hg tip -p | ||||
changeset: 4:ad816da3711e | ||||
tag: tip | ||||
user: test | ||||
date: Thu Jan 01 00:00:04 1970 +0000 | ||||
summary: binary | ||||
diff -r b39a238f01a1 -r ad816da3711e tip.bundle | ||||
Binary file tip.bundle has changed | ||||
Change binary file | ||||
Pierre-Yves David
|
r26863 | $ hg bundle --base -2 --type v1 tip.bundle | ||
Laurent Charignon
|
r24279 | 1 changesets found | ||
$ hg commit -i -d '5 0' -m binary-change<<EOF | ||||
> y | ||||
> EOF | ||||
diff --git a/tip.bundle b/tip.bundle | ||||
this modifies a binary file (all or nothing) | ||||
examine changes to 'tip.bundle'? [Ynesfdaq?] y | ||||
$ hg tip -p | ||||
changeset: 5:dccd6f3eb485 | ||||
tag: tip | ||||
user: test | ||||
date: Thu Jan 01 00:00:05 1970 +0000 | ||||
summary: binary-change | ||||
diff -r ad816da3711e -r dccd6f3eb485 tip.bundle | ||||
Binary file tip.bundle has changed | ||||
Rename and change binary file | ||||
$ hg mv tip.bundle top.bundle | ||||
Pierre-Yves David
|
r26863 | $ hg bundle --base -2 --type v1 top.bundle | ||
Laurent Charignon
|
r24279 | 1 changesets found | ||
$ hg commit -i -d '6 0' -m binary-change-rename<<EOF | ||||
> y | ||||
> EOF | ||||
diff --git a/tip.bundle b/top.bundle | ||||
rename from tip.bundle | ||||
rename to top.bundle | ||||
this modifies a binary file (all or nothing) | ||||
examine changes to 'tip.bundle' and 'top.bundle'? [Ynesfdaq?] y | ||||
$ hg tip -p | ||||
changeset: 6:7fa44105f5b3 | ||||
tag: tip | ||||
user: test | ||||
date: Thu Jan 01 00:00:06 1970 +0000 | ||||
summary: binary-change-rename | ||||
diff -r dccd6f3eb485 -r 7fa44105f5b3 tip.bundle | ||||
Binary file tip.bundle has changed | ||||
diff -r dccd6f3eb485 -r 7fa44105f5b3 top.bundle | ||||
Binary file top.bundle has changed | ||||
Add plain file | ||||
$ for i in 1 2 3 4 5 6 7 8 9 10; do | ||||
> echo $i >> plain | ||||
> done | ||||
$ hg add plain | ||||
$ hg commit -i -d '7 0' -m plain plain<<EOF | ||||
> y | ||||
Laurent Charignon
|
r24845 | > y | ||
Laurent Charignon
|
r24279 | > EOF | ||
diff --git a/plain b/plain | ||||
new file mode 100644 | ||||
examine changes to 'plain'? [Ynesfdaq?] y | ||||
Laurent Charignon
|
r24845 | @@ -0,0 +1,10 @@ | ||
+1 | ||||
+2 | ||||
+3 | ||||
+4 | ||||
+5 | ||||
+6 | ||||
+7 | ||||
+8 | ||||
+9 | ||||
+10 | ||||
record this change to 'plain'? [Ynesfdaq?] y | ||||
Laurent Charignon
|
r24279 | $ hg tip -p | ||
changeset: 7:11fb457c1be4 | ||||
tag: tip | ||||
user: test | ||||
date: Thu Jan 01 00:00:07 1970 +0000 | ||||
summary: plain | ||||
diff -r 7fa44105f5b3 -r 11fb457c1be4 plain | ||||
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 | ||||
+++ b/plain Thu Jan 01 00:00:07 1970 +0000 | ||||
@@ -0,0 +1,10 @@ | ||||
+1 | ||||
+2 | ||||
+3 | ||||
+4 | ||||
+5 | ||||
+6 | ||||
+7 | ||||
+8 | ||||
+9 | ||||
+10 | ||||
Modify end of plain file with username unset | ||||
$ echo 11 >> plain | ||||
$ unset HGUSER | ||||
$ hg commit -i --config ui.username= -d '8 0' -m end plain | ||||
abort: no username supplied | ||||
timeless
|
r28962 | (use 'hg config --edit' to set your username) | ||
Laurent Charignon
|
r24279 | [255] | ||
Modify end of plain file, also test that diffopts are accounted for | ||||
$ HGUSER="test" | ||||
$ export HGUSER | ||||
$ hg commit -i --config diff.showfunc=true -d '8 0' -m end plain <<EOF | ||||
> y | ||||
> y | ||||
> EOF | ||||
diff --git a/plain b/plain | ||||
1 hunks, 1 lines changed | ||||
examine changes to 'plain'? [Ynesfdaq?] y | ||||
@@ -8,3 +8,4 @@ 7 | ||||
8 | ||||
9 | ||||
10 | ||||
+11 | ||||
record this change to 'plain'? [Ynesfdaq?] y | ||||
Modify end of plain file, no EOL | ||||
$ hg tip --template '{node}' >> plain | ||||
$ hg commit -i -d '9 0' -m noeol plain <<EOF | ||||
> y | ||||
> y | ||||
> EOF | ||||
diff --git a/plain b/plain | ||||
1 hunks, 1 lines changed | ||||
examine changes to 'plain'? [Ynesfdaq?] y | ||||
timeless
|
r27411 | @@ -9,3 +9,4 @@ 8 | ||
Laurent Charignon
|
r24279 | 9 | ||
10 | ||||
11 | ||||
+7264f99c5f5ff3261504828afa4fb4d406c3af54 | ||||
\ No newline at end of file | ||||
record this change to 'plain'? [Ynesfdaq?] y | ||||
timeless
|
r27412 | Record showfunc should preserve function across sections | ||
$ cat > f1.py <<EOF | ||||
> def annotate(ui, repo, *pats, **opts): | ||||
> """show changeset information by line for each file | ||||
> | ||||
> List changes in files, showing the revision id responsible for | ||||
> each line. | ||||
> | ||||
> This command is useful for discovering when a change was made and | ||||
> by whom. | ||||
> | ||||
> If you include -f/-u/-d, the revision number is suppressed unless | ||||
> you also include -the revision number is suppressed unless | ||||
> you also include -n. | ||||
> | ||||
> Without the -a/--text option, annotate will avoid processing files | ||||
> it detects as binary. With -a, annotate will annotate the file | ||||
> anyway, although the results will probably be neither useful | ||||
> nor desirable. | ||||
> | ||||
> Returns 0 on success. | ||||
> """ | ||||
> return 0 | ||||
> def archive(ui, repo, dest, **opts): | ||||
> '''create an unversioned archive of a repository revision | ||||
> | ||||
> By default, the revision used is the parent of the working | ||||
> directory; use -r/--rev to specify a different revision. | ||||
> | ||||
> The archive type is automatically detected based on file | ||||
> extension (to override, use -t/--type). | ||||
> | ||||
> .. container:: verbose | ||||
> | ||||
> Valid types are: | ||||
> EOF | ||||
$ hg add f1.py | ||||
$ hg commit -m funcs | ||||
$ cat > f1.py <<EOF | ||||
> def annotate(ui, repo, *pats, **opts): | ||||
> """show changeset information by line for each file | ||||
> | ||||
> List changes in files, showing the revision id responsible for | ||||
> each line | ||||
> | ||||
> This command is useful for discovering when a change was made and | ||||
> by whom. | ||||
> | ||||
> Without the -a/--text option, annotate will avoid processing files | ||||
> it detects as binary. With -a, annotate will annotate the file | ||||
> anyway, although the results will probably be neither useful | ||||
> nor desirable. | ||||
> | ||||
> Returns 0 on success. | ||||
> """ | ||||
> return 0 | ||||
> def archive(ui, repo, dest, **opts): | ||||
> '''create an unversioned archive of a repository revision | ||||
> | ||||
> By default, the revision used is the parent of the working | ||||
> directory; use -r/--rev to specify a different revision. | ||||
> | ||||
> The archive type is automatically detected based on file | ||||
> extension (or override using -t/--type). | ||||
> | ||||
> .. container:: verbose | ||||
> | ||||
> Valid types are: | ||||
> EOF | ||||
$ hg commit -i -m interactive <<EOF | ||||
> y | ||||
> y | ||||
> y | ||||
> y | ||||
> EOF | ||||
diff --git a/f1.py b/f1.py | ||||
3 hunks, 6 lines changed | ||||
examine changes to 'f1.py'? [Ynesfdaq?] y | ||||
@@ -2,8 +2,8 @@ def annotate(ui, repo, *pats, **opts): | ||||
"""show changeset information by line for each file | ||||
List changes in files, showing the revision id responsible for | ||||
- each line. | ||||
+ each line | ||||
This command is useful for discovering when a change was made and | ||||
by whom. | ||||
record change 1/3 to 'f1.py'? [Ynesfdaq?] y | ||||
@@ -6,11 +6,7 @@ def annotate(ui, repo, *pats, **opts): | ||||
This command is useful for discovering when a change was made and | ||||
by whom. | ||||
- If you include -f/-u/-d, the revision number is suppressed unless | ||||
- you also include -the revision number is suppressed unless | ||||
- you also include -n. | ||||
- | ||||
Without the -a/--text option, annotate will avoid processing files | ||||
it detects as binary. With -a, annotate will annotate the file | ||||
anyway, although the results will probably be neither useful | ||||
record change 2/3 to 'f1.py'? [Ynesfdaq?] y | ||||
@@ -26,7 +22,7 @@ def archive(ui, repo, dest, **opts): | ||||
directory; use -r/--rev to specify a different revision. | ||||
The archive type is automatically detected based on file | ||||
- extension (to override, use -t/--type). | ||||
+ extension (or override using -t/--type). | ||||
.. container:: verbose | ||||
record change 3/3 to 'f1.py'? [Ynesfdaq?] y | ||||
Laurent Charignon
|
r24279 | Modify end of plain file, add EOL | ||
$ echo >> plain | ||||
$ echo 1 > plain2 | ||||
$ hg add plain2 | ||||
$ hg commit -i -d '10 0' -m eol plain plain2 <<EOF | ||||
> y | ||||
> y | ||||
> y | ||||
Laurent Charignon
|
r24845 | > y | ||
Laurent Charignon
|
r24279 | > EOF | ||
diff --git a/plain b/plain | ||||
1 hunks, 1 lines changed | ||||
examine changes to 'plain'? [Ynesfdaq?] y | ||||
timeless
|
r27411 | @@ -9,4 +9,4 @@ 8 | ||
Laurent Charignon
|
r24279 | 9 | ||
10 | ||||
11 | ||||
-7264f99c5f5ff3261504828afa4fb4d406c3af54 | ||||
\ No newline at end of file | ||||
+7264f99c5f5ff3261504828afa4fb4d406c3af54 | ||||
record change 1/2 to 'plain'? [Ynesfdaq?] y | ||||
diff --git a/plain2 b/plain2 | ||||
new file mode 100644 | ||||
examine changes to 'plain2'? [Ynesfdaq?] y | ||||
Laurent Charignon
|
r24845 | @@ -0,0 +1,1 @@ | ||
+1 | ||||
record change 2/2 to 'plain2'? [Ynesfdaq?] y | ||||
Laurent Charignon
|
r24279 | Modify beginning, trim end, record both, add another file to test | ||
changes numbering | ||||
$ rm plain | ||||
$ for i in 2 2 3 4 5 6 7 8 9 10; do | ||||
> echo $i >> plain | ||||
> done | ||||
$ echo 2 >> plain2 | ||||
$ hg commit -i -d '10 0' -m begin-and-end plain plain2 <<EOF | ||||
> y | ||||
> y | ||||
> y | ||||
> y | ||||
> y | ||||
> EOF | ||||
diff --git a/plain b/plain | ||||
2 hunks, 3 lines changed | ||||
examine changes to 'plain'? [Ynesfdaq?] y | ||||
@@ -1,4 +1,4 @@ | ||||
-1 | ||||
+2 | ||||
2 | ||||
3 | ||||
4 | ||||
record change 1/3 to 'plain'? [Ynesfdaq?] y | ||||
timeless
|
r27411 | @@ -8,5 +8,3 @@ 7 | ||
Laurent Charignon
|
r24279 | 8 | ||
9 | ||||
10 | ||||
-11 | ||||
-7264f99c5f5ff3261504828afa4fb4d406c3af54 | ||||
record change 2/3 to 'plain'? [Ynesfdaq?] y | ||||
diff --git a/plain2 b/plain2 | ||||
1 hunks, 1 lines changed | ||||
examine changes to 'plain2'? [Ynesfdaq?] y | ||||
@@ -1,1 +1,2 @@ | ||||
1 | ||||
+2 | ||||
record change 3/3 to 'plain2'? [Ynesfdaq?] y | ||||
$ hg tip -p | ||||
timeless
|
r27412 | changeset: 13:f941910cff62 | ||
Laurent Charignon
|
r24279 | tag: tip | ||
user: test | ||||
date: Thu Jan 01 00:00:10 1970 +0000 | ||||
summary: begin-and-end | ||||
timeless
|
r27412 | diff -r 33abe24d946c -r f941910cff62 plain | ||
Laurent Charignon
|
r24279 | --- a/plain Thu Jan 01 00:00:10 1970 +0000 | ||
+++ b/plain Thu Jan 01 00:00:10 1970 +0000 | ||||
@@ -1,4 +1,4 @@ | ||||
-1 | ||||
+2 | ||||
2 | ||||
3 | ||||
4 | ||||
@@ -8,5 +8,3 @@ | ||||
8 | ||||
9 | ||||
10 | ||||
-11 | ||||
-7264f99c5f5ff3261504828afa4fb4d406c3af54 | ||||
timeless
|
r27412 | diff -r 33abe24d946c -r f941910cff62 plain2 | ||
Laurent Charignon
|
r24279 | --- a/plain2 Thu Jan 01 00:00:10 1970 +0000 | ||
+++ b/plain2 Thu Jan 01 00:00:10 1970 +0000 | ||||
@@ -1,1 +1,2 @@ | ||||
1 | ||||
+2 | ||||
Trim beginning, modify end | ||||
$ rm plain | ||||
> for i in 4 5 6 7 8 9 10.new; do | ||||
> echo $i >> plain | ||||
> done | ||||
Record end | ||||
$ hg commit -i -d '11 0' -m end-only plain <<EOF | ||||
> y | ||||
> n | ||||
> y | ||||
> EOF | ||||
diff --git a/plain b/plain | ||||
2 hunks, 4 lines changed | ||||
examine changes to 'plain'? [Ynesfdaq?] y | ||||
@@ -1,9 +1,6 @@ | ||||
-2 | ||||
-2 | ||||
-3 | ||||
4 | ||||
5 | ||||
6 | ||||
7 | ||||
8 | ||||
9 | ||||
record change 1/2 to 'plain'? [Ynesfdaq?] n | ||||
@@ -4,7 +1,7 @@ | ||||
4 | ||||
5 | ||||
6 | ||||
7 | ||||
8 | ||||
9 | ||||
-10 | ||||
+10.new | ||||
record change 2/2 to 'plain'? [Ynesfdaq?] y | ||||
$ hg tip -p | ||||
timeless
|
r27412 | changeset: 14:4915f538659b | ||
Laurent Charignon
|
r24279 | tag: tip | ||
user: test | ||||
date: Thu Jan 01 00:00:11 1970 +0000 | ||||
summary: end-only | ||||
timeless
|
r27412 | diff -r f941910cff62 -r 4915f538659b plain | ||
Laurent Charignon
|
r24279 | --- a/plain Thu Jan 01 00:00:10 1970 +0000 | ||
+++ b/plain Thu Jan 01 00:00:11 1970 +0000 | ||||
@@ -7,4 +7,4 @@ | ||||
7 | ||||
8 | ||||
9 | ||||
-10 | ||||
+10.new | ||||
Record beginning | ||||
$ hg commit -i -d '12 0' -m begin-only plain <<EOF | ||||
> y | ||||
> y | ||||
> EOF | ||||
diff --git a/plain b/plain | ||||
1 hunks, 3 lines changed | ||||
examine changes to 'plain'? [Ynesfdaq?] y | ||||
@@ -1,6 +1,3 @@ | ||||
-2 | ||||
-2 | ||||
-3 | ||||
4 | ||||
5 | ||||
6 | ||||
record this change to 'plain'? [Ynesfdaq?] y | ||||
$ hg tip -p | ||||
timeless
|
r27412 | changeset: 15:1b1f93d4b94b | ||
Laurent Charignon
|
r24279 | tag: tip | ||
user: test | ||||
date: Thu Jan 01 00:00:12 1970 +0000 | ||||
summary: begin-only | ||||
timeless
|
r27412 | diff -r 4915f538659b -r 1b1f93d4b94b plain | ||
Laurent Charignon
|
r24279 | --- a/plain Thu Jan 01 00:00:11 1970 +0000 | ||
+++ b/plain Thu Jan 01 00:00:12 1970 +0000 | ||||
@@ -1,6 +1,3 @@ | ||||
-2 | ||||
-2 | ||||
-3 | ||||
4 | ||||
5 | ||||
6 | ||||
Add to beginning, trim from end | ||||
$ rm plain | ||||
$ for i in 1 2 3 4 5 6 7 8 9; do | ||||
> echo $i >> plain | ||||
> done | ||||
Record end | ||||
$ hg commit -i --traceback -d '13 0' -m end-again plain<<EOF | ||||
> y | ||||
> n | ||||
> y | ||||
> EOF | ||||
diff --git a/plain b/plain | ||||
2 hunks, 4 lines changed | ||||
examine changes to 'plain'? [Ynesfdaq?] y | ||||
@@ -1,6 +1,9 @@ | ||||
+1 | ||||
+2 | ||||
+3 | ||||
4 | ||||
5 | ||||
6 | ||||
7 | ||||
8 | ||||
9 | ||||
record change 1/2 to 'plain'? [Ynesfdaq?] n | ||||
@@ -1,7 +4,6 @@ | ||||
4 | ||||
5 | ||||
6 | ||||
7 | ||||
8 | ||||
9 | ||||
-10.new | ||||
record change 2/2 to 'plain'? [Ynesfdaq?] y | ||||
Add to beginning, middle, end | ||||
$ rm plain | ||||
$ for i in 1 2 3 4 5 5.new 5.reallynew 6 7 8 9 10 11; do | ||||
> echo $i >> plain | ||||
> done | ||||
Record beginning, middle, and test that format-breaking diffopts are ignored | ||||
$ hg commit -i --config diff.noprefix=True -d '14 0' -m middle-only plain <<EOF | ||||
> y | ||||
> y | ||||
> y | ||||
> n | ||||
> EOF | ||||
diff --git a/plain b/plain | ||||
3 hunks, 7 lines changed | ||||
examine changes to 'plain'? [Ynesfdaq?] y | ||||
@@ -1,2 +1,5 @@ | ||||
+1 | ||||
+2 | ||||
+3 | ||||
4 | ||||
5 | ||||
record change 1/3 to 'plain'? [Ynesfdaq?] y | ||||
@@ -1,6 +4,8 @@ | ||||
4 | ||||
5 | ||||
+5.new | ||||
+5.reallynew | ||||
6 | ||||
7 | ||||
8 | ||||
9 | ||||
record change 2/3 to 'plain'? [Ynesfdaq?] y | ||||
@@ -3,4 +8,6 @@ | ||||
6 | ||||
7 | ||||
8 | ||||
9 | ||||
+10 | ||||
+11 | ||||
record change 3/3 to 'plain'? [Ynesfdaq?] n | ||||
$ hg tip -p | ||||
timeless
|
r27412 | changeset: 17:41cf3f5c55ae | ||
Laurent Charignon
|
r24279 | tag: tip | ||
user: test | ||||
date: Thu Jan 01 00:00:14 1970 +0000 | ||||
summary: middle-only | ||||
timeless
|
r27412 | diff -r a69d252246e1 -r 41cf3f5c55ae plain | ||
Laurent Charignon
|
r24279 | --- a/plain Thu Jan 01 00:00:13 1970 +0000 | ||
+++ b/plain Thu Jan 01 00:00:14 1970 +0000 | ||||
@@ -1,5 +1,10 @@ | ||||
+1 | ||||
+2 | ||||
+3 | ||||
4 | ||||
5 | ||||
+5.new | ||||
+5.reallynew | ||||
6 | ||||
7 | ||||
8 | ||||
Record end | ||||
$ hg commit -i -d '15 0' -m end-only plain <<EOF | ||||
> y | ||||
> y | ||||
> EOF | ||||
diff --git a/plain b/plain | ||||
1 hunks, 2 lines changed | ||||
examine changes to 'plain'? [Ynesfdaq?] y | ||||
timeless
|
r27411 | @@ -9,3 +9,5 @@ 6 | ||
Laurent Charignon
|
r24279 | 7 | ||
8 | ||||
9 | ||||
+10 | ||||
+11 | ||||
record this change to 'plain'? [Ynesfdaq?] y | ||||
$ hg tip -p | ||||
timeless
|
r27412 | changeset: 18:58a72f46bc24 | ||
Laurent Charignon
|
r24279 | tag: tip | ||
user: test | ||||
date: Thu Jan 01 00:00:15 1970 +0000 | ||||
summary: end-only | ||||
timeless
|
r27412 | diff -r 41cf3f5c55ae -r 58a72f46bc24 plain | ||
Laurent Charignon
|
r24279 | --- a/plain Thu Jan 01 00:00:14 1970 +0000 | ||
+++ b/plain Thu Jan 01 00:00:15 1970 +0000 | ||||
@@ -9,3 +9,5 @@ | ||||
7 | ||||
8 | ||||
9 | ||||
+10 | ||||
+11 | ||||
$ mkdir subdir | ||||
$ cd subdir | ||||
$ echo a > a | ||||
$ hg ci -d '16 0' -Amsubdir | ||||
adding subdir/a | ||||
$ echo a >> a | ||||
$ hg commit -i -d '16 0' -m subdir-change a <<EOF | ||||
> y | ||||
> y | ||||
> EOF | ||||
diff --git a/subdir/a b/subdir/a | ||||
1 hunks, 1 lines changed | ||||
examine changes to 'subdir/a'? [Ynesfdaq?] y | ||||
@@ -1,1 +1,2 @@ | ||||
a | ||||
+a | ||||
record this change to 'subdir/a'? [Ynesfdaq?] y | ||||
$ hg tip -p | ||||
timeless
|
r27412 | changeset: 20:e0f6b99f6c49 | ||
Laurent Charignon
|
r24279 | tag: tip | ||
user: test | ||||
date: Thu Jan 01 00:00:16 1970 +0000 | ||||
summary: subdir-change | ||||
timeless
|
r27412 | diff -r abd26b51de37 -r e0f6b99f6c49 subdir/a | ||
Laurent Charignon
|
r24279 | --- a/subdir/a Thu Jan 01 00:00:16 1970 +0000 | ||
+++ b/subdir/a Thu Jan 01 00:00:16 1970 +0000 | ||||
@@ -1,1 +1,2 @@ | ||||
a | ||||
+a | ||||
$ echo a > f1 | ||||
$ echo b > f2 | ||||
$ hg add f1 f2 | ||||
$ hg ci -mz -d '17 0' | ||||
$ echo a >> f1 | ||||
$ echo b >> f2 | ||||
Help, quit | ||||
$ hg commit -i <<EOF | ||||
> ? | ||||
> q | ||||
> EOF | ||||
diff --git a/subdir/f1 b/subdir/f1 | ||||
1 hunks, 1 lines changed | ||||
examine changes to 'subdir/f1'? [Ynesfdaq?] ? | ||||
y - yes, record this change | ||||
n - no, skip this change | ||||
e - edit this change manually | ||||
s - skip remaining changes to this file | ||||
f - record remaining changes to this file | ||||
d - done, skip remaining changes and files | ||||
a - record all changes to all remaining files | ||||
q - quit, recording no changes | ||||
? - ? (display help) | ||||
examine changes to 'subdir/f1'? [Ynesfdaq?] q | ||||
abort: user quit | ||||
[255] | ||||
FUJIWARA Katsunori
|
r29154 | #if gettext | ||
Test translated help message | ||||
str.lower() instead of encoding.lower(str) on translated message might | ||||
make message meaningless, because some encoding uses 0x41(A) - 0x5a(Z) | ||||
as the second or later byte of multi-byte character. | ||||
For example, "\x8bL\x98^" (translation of "record" in ja_JP.cp932) | ||||
contains 0x4c (L). str.lower() replaces 0x4c(L) by 0x6c(l) and this | ||||
replacement makes message meaningless. | ||||
This tests that translated help message is lower()-ed correctly. | ||||
$ LANGUAGE=ja | ||||
$ export LANGUAGE | ||||
FUJIWARA Katsunori
|
r29180 | $ cat > $TESTTMP/escape.py <<EOF | ||
> from __future__ import absolute_import | ||||
Yuya Nishihara
|
r36857 | > from mercurial import ( | ||
> pycompat, | ||||
Yuya Nishihara
|
r37137 | > ) | ||
> from mercurial.utils import ( | ||||
> procutil, | ||||
Yuya Nishihara
|
r36857 | > ) | ||
FUJIWARA Katsunori
|
r29180 | > def escape(c): | ||
> o = ord(c) | ||||
> if o < 0x80: | ||||
> return c | ||||
> else: | ||||
Yuya Nishihara
|
r36857 | > return br'\x%02x' % o # escape char setting MSB | ||
Yuya Nishihara
|
r37137 | > for l in procutil.stdin: | ||
> procutil.stdout.write( | ||||
> b''.join(escape(c) for c in pycompat.iterbytestr(l))) | ||||
FUJIWARA Katsunori
|
r29180 | > EOF | ||
Matt Harbison
|
r39743 | $ hg commit -i --encoding cp932 2>&1 <<EOF | "$PYTHON" $TESTTMP/escape.py | grep '^y - ' | ||
FUJIWARA Katsunori
|
r29154 | > ? | ||
> q | ||||
> EOF | ||||
FUJIWARA Katsunori
|
r29180 | y - \x82\xb1\x82\xcc\x95\xcf\x8dX\x82\xf0\x8bL\x98^(yes) | ||
FUJIWARA Katsunori
|
r29154 | |||
$ LANGUAGE= | ||||
#endif | ||||
Laurent Charignon
|
r24279 | Skip | ||
$ hg commit -i <<EOF | ||||
> s | ||||
> EOF | ||||
diff --git a/subdir/f1 b/subdir/f1 | ||||
1 hunks, 1 lines changed | ||||
examine changes to 'subdir/f1'? [Ynesfdaq?] s | ||||
diff --git a/subdir/f2 b/subdir/f2 | ||||
1 hunks, 1 lines changed | ||||
examine changes to 'subdir/f2'? [Ynesfdaq?] abort: response expected | ||||
[255] | ||||
No | ||||
$ hg commit -i <<EOF | ||||
> n | ||||
> EOF | ||||
diff --git a/subdir/f1 b/subdir/f1 | ||||
1 hunks, 1 lines changed | ||||
examine changes to 'subdir/f1'? [Ynesfdaq?] n | ||||
diff --git a/subdir/f2 b/subdir/f2 | ||||
1 hunks, 1 lines changed | ||||
examine changes to 'subdir/f2'? [Ynesfdaq?] abort: response expected | ||||
[255] | ||||
f, quit | ||||
$ hg commit -i <<EOF | ||||
> f | ||||
> q | ||||
> EOF | ||||
diff --git a/subdir/f1 b/subdir/f1 | ||||
1 hunks, 1 lines changed | ||||
examine changes to 'subdir/f1'? [Ynesfdaq?] f | ||||
diff --git a/subdir/f2 b/subdir/f2 | ||||
1 hunks, 1 lines changed | ||||
examine changes to 'subdir/f2'? [Ynesfdaq?] q | ||||
abort: user quit | ||||
[255] | ||||
s, all | ||||
$ hg commit -i -d '18 0' -mx <<EOF | ||||
> s | ||||
> a | ||||
> EOF | ||||
diff --git a/subdir/f1 b/subdir/f1 | ||||
1 hunks, 1 lines changed | ||||
examine changes to 'subdir/f1'? [Ynesfdaq?] s | ||||
diff --git a/subdir/f2 b/subdir/f2 | ||||
1 hunks, 1 lines changed | ||||
examine changes to 'subdir/f2'? [Ynesfdaq?] a | ||||
$ hg tip -p | ||||
timeless
|
r27412 | changeset: 22:6afbbefacf35 | ||
Laurent Charignon
|
r24279 | tag: tip | ||
user: test | ||||
date: Thu Jan 01 00:00:18 1970 +0000 | ||||
summary: x | ||||
timeless
|
r27412 | diff -r b73c401c693c -r 6afbbefacf35 subdir/f2 | ||
Laurent Charignon
|
r24279 | --- a/subdir/f2 Thu Jan 01 00:00:17 1970 +0000 | ||
+++ b/subdir/f2 Thu Jan 01 00:00:18 1970 +0000 | ||||
@@ -1,1 +1,2 @@ | ||||
b | ||||
+b | ||||
f | ||||
$ hg commit -i -d '19 0' -my <<EOF | ||||
> f | ||||
> EOF | ||||
diff --git a/subdir/f1 b/subdir/f1 | ||||
1 hunks, 1 lines changed | ||||
examine changes to 'subdir/f1'? [Ynesfdaq?] f | ||||
$ hg tip -p | ||||
timeless
|
r27412 | changeset: 23:715028a33949 | ||
Laurent Charignon
|
r24279 | tag: tip | ||
user: test | ||||
date: Thu Jan 01 00:00:19 1970 +0000 | ||||
summary: y | ||||
timeless
|
r27412 | diff -r 6afbbefacf35 -r 715028a33949 subdir/f1 | ||
Laurent Charignon
|
r24279 | --- a/subdir/f1 Thu Jan 01 00:00:18 1970 +0000 | ||
+++ b/subdir/f1 Thu Jan 01 00:00:19 1970 +0000 | ||||
@@ -1,1 +1,2 @@ | ||||
a | ||||
+a | ||||
#if execbit | ||||
Preserve chmod +x | ||||
$ chmod +x f1 | ||||
$ echo a >> f1 | ||||
$ hg commit -i -d '20 0' -mz <<EOF | ||||
> y | ||||
> y | ||||
> y | ||||
> EOF | ||||
diff --git a/subdir/f1 b/subdir/f1 | ||||
old mode 100644 | ||||
new mode 100755 | ||||
1 hunks, 1 lines changed | ||||
examine changes to 'subdir/f1'? [Ynesfdaq?] y | ||||
@@ -1,2 +1,3 @@ | ||||
a | ||||
a | ||||
+a | ||||
record this change to 'subdir/f1'? [Ynesfdaq?] y | ||||
$ hg tip --config diff.git=True -p | ||||
timeless
|
r27412 | changeset: 24:db967c1e5884 | ||
Laurent Charignon
|
r24279 | tag: tip | ||
user: test | ||||
date: Thu Jan 01 00:00:20 1970 +0000 | ||||
summary: z | ||||
diff --git a/subdir/f1 b/subdir/f1 | ||||
old mode 100644 | ||||
new mode 100755 | ||||
--- a/subdir/f1 | ||||
+++ b/subdir/f1 | ||||
@@ -1,2 +1,3 @@ | ||||
a | ||||
a | ||||
+a | ||||
Preserve execute permission on original | ||||
$ echo b >> f1 | ||||
$ hg commit -i -d '21 0' -maa <<EOF | ||||
> y | ||||
> y | ||||
> y | ||||
> EOF | ||||
diff --git a/subdir/f1 b/subdir/f1 | ||||
1 hunks, 1 lines changed | ||||
examine changes to 'subdir/f1'? [Ynesfdaq?] y | ||||
@@ -1,3 +1,4 @@ | ||||
a | ||||
a | ||||
a | ||||
+b | ||||
record this change to 'subdir/f1'? [Ynesfdaq?] y | ||||
$ hg tip --config diff.git=True -p | ||||
timeless
|
r27412 | changeset: 25:88903aef81c3 | ||
Laurent Charignon
|
r24279 | tag: tip | ||
user: test | ||||
date: Thu Jan 01 00:00:21 1970 +0000 | ||||
summary: aa | ||||
diff --git a/subdir/f1 b/subdir/f1 | ||||
--- a/subdir/f1 | ||||
+++ b/subdir/f1 | ||||
@@ -1,3 +1,4 @@ | ||||
a | ||||
a | ||||
a | ||||
+b | ||||
Preserve chmod -x | ||||
$ chmod -x f1 | ||||
$ echo c >> f1 | ||||
$ hg commit -i -d '22 0' -mab <<EOF | ||||
> y | ||||
> y | ||||
> y | ||||
> EOF | ||||
diff --git a/subdir/f1 b/subdir/f1 | ||||
old mode 100755 | ||||
new mode 100644 | ||||
1 hunks, 1 lines changed | ||||
examine changes to 'subdir/f1'? [Ynesfdaq?] y | ||||
timeless
|
r27411 | @@ -2,3 +2,4 @@ a | ||
Laurent Charignon
|
r24279 | a | ||
a | ||||
b | ||||
+c | ||||
record this change to 'subdir/f1'? [Ynesfdaq?] y | ||||
$ hg tip --config diff.git=True -p | ||||
timeless
|
r27412 | changeset: 26:7af84b6cf560 | ||
Laurent Charignon
|
r24279 | tag: tip | ||
user: test | ||||
date: Thu Jan 01 00:00:22 1970 +0000 | ||||
summary: ab | ||||
diff --git a/subdir/f1 b/subdir/f1 | ||||
old mode 100755 | ||||
new mode 100644 | ||||
--- a/subdir/f1 | ||||
+++ b/subdir/f1 | ||||
@@ -2,3 +2,4 @@ | ||||
a | ||||
a | ||||
b | ||||
+c | ||||
#else | ||||
Slightly bogus tests to get almost same repo structure as when x bit is used | ||||
- but with different hashes. | ||||
Mock "Preserve chmod +x" | ||||
$ echo a >> f1 | ||||
$ hg commit -i -d '20 0' -mz <<EOF | ||||
> y | ||||
> y | ||||
> y | ||||
> EOF | ||||
diff --git a/subdir/f1 b/subdir/f1 | ||||
1 hunks, 1 lines changed | ||||
examine changes to 'subdir/f1'? [Ynesfdaq?] y | ||||
@@ -1,2 +1,3 @@ | ||||
a | ||||
a | ||||
+a | ||||
record this change to 'subdir/f1'? [Ynesfdaq?] y | ||||
$ hg tip --config diff.git=True -p | ||||
Matt Harbison
|
r27478 | changeset: 24:c26cfe2c4eb0 | ||
Laurent Charignon
|
r24279 | tag: tip | ||
user: test | ||||
date: Thu Jan 01 00:00:20 1970 +0000 | ||||
summary: z | ||||
diff --git a/subdir/f1 b/subdir/f1 | ||||
--- a/subdir/f1 | ||||
+++ b/subdir/f1 | ||||
@@ -1,2 +1,3 @@ | ||||
a | ||||
a | ||||
+a | ||||
Mock "Preserve execute permission on original" | ||||
$ echo b >> f1 | ||||
$ hg commit -i -d '21 0' -maa <<EOF | ||||
> y | ||||
> y | ||||
> y | ||||
> EOF | ||||
diff --git a/subdir/f1 b/subdir/f1 | ||||
1 hunks, 1 lines changed | ||||
examine changes to 'subdir/f1'? [Ynesfdaq?] y | ||||
@@ -1,3 +1,4 @@ | ||||
a | ||||
a | ||||
a | ||||
+b | ||||
record this change to 'subdir/f1'? [Ynesfdaq?] y | ||||
$ hg tip --config diff.git=True -p | ||||
Matt Harbison
|
r27478 | changeset: 25:a48d2d60adde | ||
Laurent Charignon
|
r24279 | tag: tip | ||
user: test | ||||
date: Thu Jan 01 00:00:21 1970 +0000 | ||||
summary: aa | ||||
diff --git a/subdir/f1 b/subdir/f1 | ||||
--- a/subdir/f1 | ||||
+++ b/subdir/f1 | ||||
@@ -1,3 +1,4 @@ | ||||
a | ||||
a | ||||
a | ||||
+b | ||||
Mock "Preserve chmod -x" | ||||
$ chmod -x f1 | ||||
$ echo c >> f1 | ||||
$ hg commit -i -d '22 0' -mab <<EOF | ||||
> y | ||||
> y | ||||
> y | ||||
> EOF | ||||
diff --git a/subdir/f1 b/subdir/f1 | ||||
1 hunks, 1 lines changed | ||||
examine changes to 'subdir/f1'? [Ynesfdaq?] y | ||||
Matt Harbison
|
r27478 | @@ -2,3 +2,4 @@ a | ||
Laurent Charignon
|
r24279 | a | ||
a | ||||
b | ||||
+c | ||||
record this change to 'subdir/f1'? [Ynesfdaq?] y | ||||
$ hg tip --config diff.git=True -p | ||||
Matt Harbison
|
r27478 | changeset: 26:5cc89ae210fa | ||
Laurent Charignon
|
r24279 | tag: tip | ||
user: test | ||||
date: Thu Jan 01 00:00:22 1970 +0000 | ||||
summary: ab | ||||
diff --git a/subdir/f1 b/subdir/f1 | ||||
--- a/subdir/f1 | ||||
+++ b/subdir/f1 | ||||
@@ -2,3 +2,4 @@ | ||||
a | ||||
a | ||||
b | ||||
+c | ||||
#endif | ||||
$ cd .. | ||||
Abort early when a merge is in progress | ||||
$ hg up 4 | ||||
timeless
|
r27412 | 1 files updated, 0 files merged, 7 files removed, 0 files unresolved | ||
Laurent Charignon
|
r24279 | |||
$ touch iwillmergethat | ||||
$ hg add iwillmergethat | ||||
$ hg branch thatbranch | ||||
marked working directory as branch thatbranch | ||||
(branches are permanent and global, did you want a bookmark?) | ||||
$ hg ci -m'new head' | ||||
$ hg up default | ||||
timeless
|
r27412 | 7 files updated, 0 files merged, 2 files removed, 0 files unresolved | ||
Laurent Charignon
|
r24279 | |||
$ hg merge thatbranch | ||||
1 files updated, 0 files merged, 0 files removed, 0 files unresolved | ||||
(branch merge, don't forget to commit) | ||||
$ hg commit -i -m'will abort' | ||||
abort: cannot partially commit a merge (use "hg commit" instead) | ||||
[255] | ||||
$ hg up -C | ||||
0 files updated, 0 files merged, 1 files removed, 0 files unresolved | ||||
Editing patch (and ignoring trailing text) | ||||
$ cat > editor.sh << '__EOF__' | ||||
> sed -e 7d -e '5s/^-/ /' -e '/^# ---/i\ | ||||
> trailing\nditto' "$1" > tmp | ||||
> mv tmp "$1" | ||||
> __EOF__ | ||||
$ cat > editedfile << '__EOF__' | ||||
> This is the first line | ||||
> This is the second line | ||||
> This is the third line | ||||
> __EOF__ | ||||
$ hg add editedfile | ||||
$ hg commit -medit-patch-1 | ||||
$ cat > editedfile << '__EOF__' | ||||
> This line has changed | ||||
> This change will be committed | ||||
> This is the third line | ||||
> __EOF__ | ||||
$ HGEDITOR="\"sh\" \"`pwd`/editor.sh\"" hg commit -i -d '23 0' -medit-patch-2 <<EOF | ||||
> y | ||||
> e | ||||
> EOF | ||||
diff --git a/editedfile b/editedfile | ||||
1 hunks, 2 lines changed | ||||
examine changes to 'editedfile'? [Ynesfdaq?] y | ||||
@@ -1,3 +1,3 @@ | ||||
-This is the first line | ||||
-This is the second line | ||||
+This line has changed | ||||
+This change will be committed | ||||
This is the third line | ||||
record this change to 'editedfile'? [Ynesfdaq?] e | ||||
$ cat editedfile | ||||
This line has changed | ||||
This change will be committed | ||||
This is the third line | ||||
$ hg cat -r tip editedfile | ||||
This is the first line | ||||
This change will be committed | ||||
This is the third line | ||||
$ hg revert editedfile | ||||
Trying to edit patch for whole file | ||||
$ echo "This is the fourth line" >> editedfile | ||||
$ hg commit -i <<EOF | ||||
> e | ||||
> q | ||||
> EOF | ||||
diff --git a/editedfile b/editedfile | ||||
1 hunks, 1 lines changed | ||||
examine changes to 'editedfile'? [Ynesfdaq?] e | ||||
cannot edit patch for whole file | ||||
examine changes to 'editedfile'? [Ynesfdaq?] q | ||||
abort: user quit | ||||
[255] | ||||
$ hg revert editedfile | ||||
Removing changes from patch | ||||
$ sed -e '3s/third/second/' -e '2s/will/will not/' -e 1d editedfile > tmp | ||||
$ mv tmp editedfile | ||||
$ echo "This line has been added" >> editedfile | ||||
$ cat > editor.sh << '__EOF__' | ||||
> sed -e 's/^[-+]/ /' "$1" > tmp | ||||
> mv tmp "$1" | ||||
> __EOF__ | ||||
$ HGEDITOR="\"sh\" \"`pwd`/editor.sh\"" hg commit -i <<EOF | ||||
> y | ||||
> e | ||||
> EOF | ||||
diff --git a/editedfile b/editedfile | ||||
1 hunks, 3 lines changed | ||||
examine changes to 'editedfile'? [Ynesfdaq?] y | ||||
@@ -1,3 +1,3 @@ | ||||
-This is the first line | ||||
-This change will be committed | ||||
-This is the third line | ||||
+This change will not be committed | ||||
+This is the second line | ||||
+This line has been added | ||||
record this change to 'editedfile'? [Ynesfdaq?] e | ||||
no changes to record | ||||
Philippe Pepiot
|
r30157 | [1] | ||
Laurent Charignon
|
r24279 | $ cat editedfile | ||
This change will not be committed | ||||
This is the second line | ||||
This line has been added | ||||
$ hg cat -r tip editedfile | ||||
This is the first line | ||||
This change will be committed | ||||
This is the third line | ||||
$ hg revert editedfile | ||||
Invalid patch | ||||
$ sed -e '3s/third/second/' -e '2s/will/will not/' -e 1d editedfile > tmp | ||||
$ mv tmp editedfile | ||||
$ echo "This line has been added" >> editedfile | ||||
$ cat > editor.sh << '__EOF__' | ||||
> sed s/This/That/ "$1" > tmp | ||||
> mv tmp "$1" | ||||
> __EOF__ | ||||
$ HGEDITOR="\"sh\" \"`pwd`/editor.sh\"" hg commit -i <<EOF | ||||
> y | ||||
> e | ||||
> EOF | ||||
diff --git a/editedfile b/editedfile | ||||
1 hunks, 3 lines changed | ||||
examine changes to 'editedfile'? [Ynesfdaq?] y | ||||
@@ -1,3 +1,3 @@ | ||||
-This is the first line | ||||
-This change will be committed | ||||
-This is the third line | ||||
+This change will not be committed | ||||
+This is the second line | ||||
+This line has been added | ||||
record this change to 'editedfile'? [Ynesfdaq?] e | ||||
patching file editedfile | ||||
Hunk #1 FAILED at 0 | ||||
1 out of 1 hunks FAILED -- saving rejects to file editedfile.rej | ||||
abort: patch failed to apply | ||||
[255] | ||||
$ cat editedfile | ||||
This change will not be committed | ||||
This is the second line | ||||
This line has been added | ||||
$ hg cat -r tip editedfile | ||||
This is the first line | ||||
This change will be committed | ||||
This is the third line | ||||
$ cat editedfile.rej | ||||
--- editedfile | ||||
+++ editedfile | ||||
@@ -1,3 +1,3 @@ | ||||
-That is the first line | ||||
-That change will be committed | ||||
-That is the third line | ||||
+That change will not be committed | ||||
+That is the second line | ||||
+That line has been added | ||||
Malformed patch - error handling | ||||
$ cat > editor.sh << '__EOF__' | ||||
> sed -e '/^@/p' "$1" > tmp | ||||
> mv tmp "$1" | ||||
> __EOF__ | ||||
$ HGEDITOR="\"sh\" \"`pwd`/editor.sh\"" hg commit -i <<EOF | ||||
> y | ||||
> e | ||||
> EOF | ||||
diff --git a/editedfile b/editedfile | ||||
1 hunks, 3 lines changed | ||||
examine changes to 'editedfile'? [Ynesfdaq?] y | ||||
@@ -1,3 +1,3 @@ | ||||
-This is the first line | ||||
-This change will be committed | ||||
-This is the third line | ||||
+This change will not be committed | ||||
+This is the second line | ||||
+This line has been added | ||||
record this change to 'editedfile'? [Ynesfdaq?] e | ||||
abort: error parsing patch: unhandled transition: range -> range | ||||
[255] | ||||
Laurent Charignon
|
r25483 | Exiting editor with status 1, ignores the edit but does not stop the recording | ||
session | ||||
$ HGEDITOR=false hg commit -i <<EOF | ||||
> y | ||||
> e | ||||
> n | ||||
> EOF | ||||
diff --git a/editedfile b/editedfile | ||||
1 hunks, 3 lines changed | ||||
examine changes to 'editedfile'? [Ynesfdaq?] y | ||||
@@ -1,3 +1,3 @@ | ||||
-This is the first line | ||||
-This change will be committed | ||||
-This is the third line | ||||
+This change will not be committed | ||||
+This is the second line | ||||
+This line has been added | ||||
record this change to 'editedfile'? [Ynesfdaq?] e | ||||
editor exited with exit code 1 | ||||
record this change to 'editedfile'? [Ynesfdaq?] n | ||||
no changes to record | ||||
Philippe Pepiot
|
r30157 | [1] | ||
Laurent Charignon
|
r25483 | |||
Laurent Charignon
|
r24279 | random text in random positions is still an error | ||
$ cat > editor.sh << '__EOF__' | ||||
> sed -e '/^@/i\ | ||||
> other' "$1" > tmp | ||||
> mv tmp "$1" | ||||
> __EOF__ | ||||
$ HGEDITOR="\"sh\" \"`pwd`/editor.sh\"" hg commit -i <<EOF | ||||
> y | ||||
> e | ||||
> EOF | ||||
diff --git a/editedfile b/editedfile | ||||
1 hunks, 3 lines changed | ||||
examine changes to 'editedfile'? [Ynesfdaq?] y | ||||
@@ -1,3 +1,3 @@ | ||||
-This is the first line | ||||
-This change will be committed | ||||
-This is the third line | ||||
+This change will not be committed | ||||
+This is the second line | ||||
+This line has been added | ||||
record this change to 'editedfile'? [Ynesfdaq?] e | ||||
abort: error parsing patch: unhandled transition: file -> other | ||||
[255] | ||||
$ hg up -C | ||||
1 files updated, 0 files merged, 0 files removed, 0 files unresolved | ||||
With win32text | ||||
$ echo '[extensions]' >> .hg/hgrc | ||||
$ echo 'win32text = ' >> .hg/hgrc | ||||
$ echo '[decode]' >> .hg/hgrc | ||||
$ echo '** = cleverdecode:' >> .hg/hgrc | ||||
$ echo '[encode]' >> .hg/hgrc | ||||
$ echo '** = cleverencode:' >> .hg/hgrc | ||||
$ echo '[patch]' >> .hg/hgrc | ||||
$ echo 'eol = crlf' >> .hg/hgrc | ||||
Ignore win32text deprecation warning for now: | ||||
$ echo '[win32text]' >> .hg/hgrc | ||||
$ echo 'warn = no' >> .hg/hgrc | ||||
$ echo d >> subdir/f1 | ||||
$ hg commit -i -d '24 0' -mw1 <<EOF | ||||
> y | ||||
> y | ||||
> EOF | ||||
diff --git a/subdir/f1 b/subdir/f1 | ||||
1 hunks, 1 lines changed | ||||
examine changes to 'subdir/f1'? [Ynesfdaq?] y | ||||
timeless
|
r27411 | @@ -3,3 +3,4 @@ a | ||
Laurent Charignon
|
r24279 | a | ||
b | ||||
c | ||||
+d | ||||
record this change to 'subdir/f1'? [Ynesfdaq?] y | ||||
FUJIWARA Katsunori
|
r25759 | $ hg status -A subdir/f1 | ||
C subdir/f1 | ||||
Laurent Charignon
|
r24279 | $ hg tip -p | ||
timeless
|
r27412 | changeset: 30:* (glob) | ||
Laurent Charignon
|
r24279 | tag: tip | ||
user: test | ||||
date: Thu Jan 01 00:00:24 1970 +0000 | ||||
summary: w1 | ||||
diff -r ???????????? -r ???????????? subdir/f1 (glob) | ||||
--- a/subdir/f1 Thu Jan 01 00:00:23 1970 +0000 | ||||
+++ b/subdir/f1 Thu Jan 01 00:00:24 1970 +0000 | ||||
@@ -3,3 +3,4 @@ | ||||
a | ||||
b | ||||
c | ||||
+d | ||||
Test --user when ui.username not set | ||||
$ unset HGUSER | ||||
$ echo e >> subdir/f1 | ||||
$ hg commit -i --config ui.username= -d '8 0' --user xyz -m "user flag" <<EOF | ||||
> y | ||||
> y | ||||
> EOF | ||||
diff --git a/subdir/f1 b/subdir/f1 | ||||
1 hunks, 1 lines changed | ||||
examine changes to 'subdir/f1'? [Ynesfdaq?] y | ||||
timeless
|
r27411 | @@ -4,3 +4,4 @@ a | ||
Laurent Charignon
|
r24279 | b | ||
c | ||||
d | ||||
+e | ||||
record this change to 'subdir/f1'? [Ynesfdaq?] y | ||||
FUJIWARA Katsunori
|
r25759 | $ hg status -A subdir/f1 | ||
C subdir/f1 | ||||
Laurent Charignon
|
r24279 | $ hg log --template '{author}\n' -l 1 | ||
xyz | ||||
$ HGUSER="test" | ||||
$ export HGUSER | ||||
Laurent Charignon
|
r24837 | Moving files | ||
Laurent Charignon
|
r24279 | |||
Laurent Charignon
|
r24837 | $ hg update -C . | ||
FUJIWARA Katsunori
|
r25759 | 0 files updated, 0 files merged, 0 files removed, 0 files unresolved | ||
Laurent Charignon
|
r24837 | $ hg mv plain plain3 | ||
$ echo somechange >> plain3 | ||||
$ hg commit -i -d '23 0' -mmoving_files << EOF | ||||
Laurent Charignon
|
r24279 | > y | ||
Laurent Charignon
|
r24837 | > y | ||
Laurent Charignon
|
r24279 | > EOF | ||
Laurent Charignon
|
r24837 | diff --git a/plain b/plain3 | ||
rename from plain | ||||
rename to plain3 | ||||
1 hunks, 1 lines changed | ||||
examine changes to 'plain' and 'plain3'? [Ynesfdaq?] y | ||||
Laurent Charignon
|
r24279 | |||
timeless
|
r27411 | @@ -11,3 +11,4 @@ 8 | ||
Laurent Charignon
|
r24837 | 9 | ||
10 | ||||
11 | ||||
+somechange | ||||
record this change to 'plain3'? [Ynesfdaq?] y | ||||
Matt Harbison
|
r24861 | The #if execbit block above changes the hash here on some systems | ||
FUJIWARA Katsunori
|
r25759 | $ hg status -A plain3 | ||
C plain3 | ||||
Laurent Charignon
|
r24837 | $ hg tip | ||
timeless
|
r27412 | changeset: 32:* (glob) | ||
Laurent Charignon
|
r24837 | tag: tip | ||
user: test | ||||
date: Thu Jan 01 00:00:23 1970 +0000 | ||||
summary: moving_files | ||||
Laurent Charignon
|
r24845 | Editing patch of newly added file | ||
$ hg update -C . | ||||
0 files updated, 0 files merged, 0 files removed, 0 files unresolved | ||||
$ cat > editor.sh << '__EOF__' | ||||
> cat "$1" | sed "s/first/very/g" > tt | ||||
> mv tt "$1" | ||||
> __EOF__ | ||||
$ cat > newfile << '__EOF__' | ||||
> This is the first line | ||||
> This is the second line | ||||
> This is the third line | ||||
> __EOF__ | ||||
$ hg add newfile | ||||
$ HGEDITOR="\"sh\" \"`pwd`/editor.sh\"" hg commit -i -d '23 0' -medit-patch-new <<EOF | ||||
> y | ||||
> e | ||||
> EOF | ||||
diff --git a/newfile b/newfile | ||||
new file mode 100644 | ||||
examine changes to 'newfile'? [Ynesfdaq?] y | ||||
@@ -0,0 +1,3 @@ | ||||
+This is the first line | ||||
+This is the second line | ||||
+This is the third line | ||||
record this change to 'newfile'? [Ynesfdaq?] e | ||||
$ hg cat -r tip newfile | ||||
This is the very line | ||||
This is the second line | ||||
This is the third line | ||||
$ cat newfile | ||||
This is the first line | ||||
This is the second line | ||||
This is the third line | ||||
Laurent Charignon
|
r24866 | |||
Add new file from within a subdirectory | ||||
$ hg update -C . | ||||
1 files updated, 0 files merged, 0 files removed, 0 files unresolved | ||||
$ mkdir folder | ||||
$ cd folder | ||||
$ echo "foo" > bar | ||||
$ hg add bar | ||||
$ hg commit -i -d '23 0' -mnewfilesubdir <<EOF | ||||
> y | ||||
> y | ||||
> EOF | ||||
diff --git a/folder/bar b/folder/bar | ||||
new file mode 100644 | ||||
examine changes to 'folder/bar'? [Ynesfdaq?] y | ||||
@@ -0,0 +1,1 @@ | ||||
+foo | ||||
record this change to 'folder/bar'? [Ynesfdaq?] y | ||||
Matt Harbison
|
r24884 | The #if execbit block above changes the hashes here on some systems | ||
Laurent Charignon
|
r24866 | $ hg tip -p | ||
timeless
|
r27412 | changeset: 34:* (glob) | ||
Laurent Charignon
|
r24866 | tag: tip | ||
user: test | ||||
date: Thu Jan 01 00:00:23 1970 +0000 | ||||
summary: newfilesubdir | ||||
Matt Harbison
|
r24884 | diff -r * -r * folder/bar (glob) | ||
Laurent Charignon
|
r24866 | --- /dev/null Thu Jan 01 00:00:00 1970 +0000 | ||
+++ b/folder/bar Thu Jan 01 00:00:23 1970 +0000 | ||||
@@ -0,0 +1,1 @@ | ||||
+foo | ||||
Laurent Charignon
|
r24279 | $ cd .. | ||
FUJIWARA Katsunori
|
r25759 | |||
$ hg status -A folder/bar | ||||
C folder/bar | ||||
Clear win32text configuration before size/timestamp sensitive test | ||||
$ cat >> .hg/hgrc <<EOF | ||||
> [extensions] | ||||
> win32text = ! | ||||
> [decode] | ||||
> ** = ! | ||||
> [encode] | ||||
> ** = ! | ||||
> [patch] | ||||
> eol = strict | ||||
> EOF | ||||
$ hg update -q -C null | ||||
$ hg update -q -C tip | ||||
Test that partially committed file is still treated as "modified", | ||||
even if none of mode, size and timestamp is changed on the filesystem | ||||
(see also issue4583). | ||||
$ cat > subdir/f1 <<EOF | ||||
> A | ||||
> a | ||||
> a | ||||
> b | ||||
> c | ||||
> d | ||||
> E | ||||
> EOF | ||||
$ hg diff --git subdir/f1 | ||||
diff --git a/subdir/f1 b/subdir/f1 | ||||
--- a/subdir/f1 | ||||
+++ b/subdir/f1 | ||||
@@ -1,7 +1,7 @@ | ||||
-a | ||||
+A | ||||
a | ||||
a | ||||
b | ||||
c | ||||
d | ||||
-e | ||||
+E | ||||
$ touch -t 200001010000 subdir/f1 | ||||
$ cat >> .hg/hgrc <<EOF | ||||
> # emulate invoking patch.internalpatch() at 2000-01-01 00:00 | ||||
> [fakepatchtime] | ||||
> fakenow = 200001010000 | ||||
> | ||||
> [extensions] | ||||
> fakepatchtime = $TESTDIR/fakepatchtime.py | ||||
> EOF | ||||
$ hg commit -i -m 'commit subdir/f1 partially' <<EOF | ||||
> y | ||||
> y | ||||
> n | ||||
> EOF | ||||
diff --git a/subdir/f1 b/subdir/f1 | ||||
2 hunks, 2 lines changed | ||||
examine changes to 'subdir/f1'? [Ynesfdaq?] y | ||||
@@ -1,6 +1,6 @@ | ||||
-a | ||||
+A | ||||
a | ||||
a | ||||
b | ||||
c | ||||
d | ||||
record change 1/2 to 'subdir/f1'? [Ynesfdaq?] y | ||||
@@ -2,6 +2,6 @@ | ||||
a | ||||
a | ||||
b | ||||
c | ||||
d | ||||
-e | ||||
+E | ||||
record change 2/2 to 'subdir/f1'? [Ynesfdaq?] n | ||||
$ cat >> .hg/hgrc <<EOF | ||||
> [extensions] | ||||
> fakepatchtime = ! | ||||
> EOF | ||||
$ hg debugstate | grep ' subdir/f1$' | ||||
n 0 -1 unset subdir/f1 | ||||
$ hg status -A subdir/f1 | ||||
M subdir/f1 | ||||