--- a/tests/test-record.t Fri Mar 30 14:35:06 2012 -0500
+++ b/tests/test-record.t Fri Mar 30 22:08:46 2012 +0100
@@ -20,7 +20,7 @@
> EOF
diff --git a/empty-rw b/empty-rw
new file mode 100644
- examine changes to 'empty-rw'? [Ynsfdaq?]
+ examine changes to 'empty-rw'? [Ynesfdaq?]
no changes to record
$ hg tip -p
@@ -39,7 +39,7 @@
> EOF
diff --git a/empty-rw b/empty-rw
new file mode 100644
- examine changes to 'empty-rw'? [Ynsfdaq?]
+ examine changes to 'empty-rw'? [Ynesfdaq?]
abort: empty commit message
[255]
@@ -59,7 +59,7 @@
> EOF
diff --git a/empty-rw b/empty-rw
new file mode 100644
- examine changes to 'empty-rw'? [Ynsfdaq?]
+ examine changes to 'empty-rw'? [Ynesfdaq?]
$ hg tip -p
changeset: 0:c0708cf4e46e
@@ -88,7 +88,7 @@
diff --git a/empty-rw b/empty-rename
rename from empty-rw
rename to empty-rename
- examine changes to 'empty-rw' and 'empty-rename'? [Ynsfdaq?]
+ examine changes to 'empty-rw' and 'empty-rename'? [Ynesfdaq?]
$ hg tip -p
changeset: 1:d695e8dcb197
@@ -108,7 +108,7 @@
diff --git a/empty-rename b/empty-copy
copy from empty-rename
copy to empty-copy
- examine changes to 'empty-rename' and 'empty-copy'? [Ynsfdaq?]
+ examine changes to 'empty-rename' and 'empty-copy'? [Ynesfdaq?]
$ hg tip -p
changeset: 2:1d4b90bea524
@@ -127,7 +127,7 @@
> EOF
diff --git a/empty-copy b/empty-copy
deleted file mode 100644
- examine changes to 'empty-copy'? [Ynsfdaq?]
+ examine changes to 'empty-copy'? [Ynesfdaq?]
$ hg tip -p
changeset: 3:b39a238f01a1
@@ -149,7 +149,7 @@
diff --git a/tip.bundle b/tip.bundle
new file mode 100644
this is a binary file
- examine changes to 'tip.bundle'? [Ynsfdaq?]
+ examine changes to 'tip.bundle'? [Ynesfdaq?]
$ hg tip -p
changeset: 4:ad816da3711e
@@ -171,7 +171,7 @@
> EOF
diff --git a/tip.bundle b/tip.bundle
this modifies a binary file (all or nothing)
- examine changes to 'tip.bundle'? [Ynsfdaq?]
+ examine changes to 'tip.bundle'? [Ynesfdaq?]
$ hg tip -p
changeset: 5:dccd6f3eb485
@@ -196,7 +196,7 @@
rename from tip.bundle
rename to top.bundle
this modifies a binary file (all or nothing)
- examine changes to 'tip.bundle' and 'top.bundle'? [Ynsfdaq?]
+ examine changes to 'tip.bundle' and 'top.bundle'? [Ynesfdaq?]
$ hg tip -p
changeset: 6:7fa44105f5b3
@@ -224,7 +224,7 @@
> EOF
diff --git a/plain b/plain
new file mode 100644
- examine changes to 'plain'? [Ynsfdaq?]
+ examine changes to 'plain'? [Ynesfdaq?]
$ hg tip -p
changeset: 7:11fb457c1be4
@@ -258,13 +258,13 @@
> EOF
diff --git a/plain b/plain
1 hunks, 1 lines changed
- examine changes to 'plain'? [Ynsfdaq?]
+ examine changes to 'plain'? [Ynesfdaq?]
@@ -8,3 +8,4 @@
8
9
10
+11
- record this change to 'plain'? [Ynsfdaq?]
+ record this change to 'plain'? [Ynesfdaq?]
Modify end of plain file, no EOL
@@ -275,14 +275,14 @@
> EOF
diff --git a/plain b/plain
1 hunks, 1 lines changed
- examine changes to 'plain'? [Ynsfdaq?]
+ examine changes to 'plain'? [Ynesfdaq?]
@@ -9,3 +9,4 @@
9
10
11
+7264f99c5f5ff3261504828afa4fb4d406c3af54
\ No newline at end of file
- record this change to 'plain'? [Ynsfdaq?]
+ record this change to 'plain'? [Ynesfdaq?]
Modify end of plain file, add EOL
@@ -296,7 +296,7 @@
> EOF
diff --git a/plain b/plain
1 hunks, 1 lines changed
- examine changes to 'plain'? [Ynsfdaq?]
+ examine changes to 'plain'? [Ynesfdaq?]
@@ -9,4 +9,4 @@
9
10
@@ -304,10 +304,10 @@
-7264f99c5f5ff3261504828afa4fb4d406c3af54
\ No newline at end of file
+7264f99c5f5ff3261504828afa4fb4d406c3af54
- record change 1/2 to 'plain'? [Ynsfdaq?]
+ record change 1/2 to 'plain'? [Ynesfdaq?]
diff --git a/plain2 b/plain2
new file mode 100644
- examine changes to 'plain2'? [Ynsfdaq?]
+ examine changes to 'plain2'? [Ynesfdaq?]
Modify beginning, trim end, record both, add another file to test
changes numbering
@@ -327,28 +327,28 @@
> EOF
diff --git a/plain b/plain
2 hunks, 3 lines changed
- examine changes to 'plain'? [Ynsfdaq?]
+ examine changes to 'plain'? [Ynesfdaq?]
@@ -1,4 +1,4 @@
-1
+2
2
3
4
- record change 1/3 to 'plain'? [Ynsfdaq?]
+ record change 1/3 to 'plain'? [Ynesfdaq?]
@@ -8,5 +8,3 @@
8
9
10
-11
-7264f99c5f5ff3261504828afa4fb4d406c3af54
- record change 2/3 to 'plain'? [Ynsfdaq?]
+ record change 2/3 to 'plain'? [Ynesfdaq?]
diff --git a/plain2 b/plain2
1 hunks, 1 lines changed
- examine changes to 'plain2'? [Ynsfdaq?]
+ examine changes to 'plain2'? [Ynesfdaq?]
@@ -1,1 +1,2 @@
1
+2
- record change 3/3 to 'plain2'? [Ynsfdaq?]
+ record change 3/3 to 'plain2'? [Ynesfdaq?]
$ hg tip -p
changeset: 11:21df83db12b8
@@ -396,7 +396,7 @@
> EOF
diff --git a/plain b/plain
2 hunks, 4 lines changed
- examine changes to 'plain'? [Ynsfdaq?]
+ examine changes to 'plain'? [Ynesfdaq?]
@@ -1,9 +1,6 @@
-2
-2
@@ -407,7 +407,7 @@
7
8
9
- record change 1/2 to 'plain'? [Ynsfdaq?]
+ record change 1/2 to 'plain'? [Ynesfdaq?]
@@ -4,7 +1,7 @@
4
5
@@ -417,7 +417,7 @@
9
-10
+10.new
- record change 2/2 to 'plain'? [Ynsfdaq?]
+ record change 2/2 to 'plain'? [Ynesfdaq?]
$ hg tip -p
changeset: 12:99337501826f
@@ -445,7 +445,7 @@
> EOF
diff --git a/plain b/plain
1 hunks, 3 lines changed
- examine changes to 'plain'? [Ynsfdaq?]
+ examine changes to 'plain'? [Ynesfdaq?]
@@ -1,6 +1,3 @@
-2
-2
@@ -453,7 +453,7 @@
4
5
6
- record this change to 'plain'? [Ynsfdaq?]
+ record this change to 'plain'? [Ynesfdaq?]
$ hg tip -p
changeset: 13:bbd45465d540
@@ -490,7 +490,7 @@
> EOF
diff --git a/plain b/plain
2 hunks, 4 lines changed
- examine changes to 'plain'? [Ynsfdaq?]
+ examine changes to 'plain'? [Ynesfdaq?]
@@ -1,6 +1,9 @@
+1
+2
@@ -501,7 +501,7 @@
7
8
9
- record change 1/2 to 'plain'? [Ynsfdaq?]
+ record change 1/2 to 'plain'? [Ynesfdaq?]
@@ -1,7 +4,6 @@
4
5
@@ -510,7 +510,7 @@
8
9
-10.new
- record change 2/2 to 'plain'? [Ynsfdaq?]
+ record change 2/2 to 'plain'? [Ynesfdaq?]
Add to beginning, middle, end
@@ -529,14 +529,14 @@
> EOF
diff --git a/plain b/plain
3 hunks, 7 lines changed
- examine changes to 'plain'? [Ynsfdaq?]
+ examine changes to 'plain'? [Ynesfdaq?]
@@ -1,2 +1,5 @@
+1
+2
+3
4
5
- record change 1/3 to 'plain'? [Ynsfdaq?]
+ record change 1/3 to 'plain'? [Ynesfdaq?]
@@ -1,6 +4,8 @@
4
5
@@ -546,7 +546,7 @@
7
8
9
- record change 2/3 to 'plain'? [Ynsfdaq?]
+ record change 2/3 to 'plain'? [Ynesfdaq?]
@@ -3,4 +8,6 @@
6
7
@@ -554,7 +554,7 @@
9
+10
+11
- record change 3/3 to 'plain'? [Ynsfdaq?]
+ record change 3/3 to 'plain'? [Ynesfdaq?]
$ hg tip -p
changeset: 15:f34a7937ec33
@@ -587,14 +587,14 @@
> EOF
diff --git a/plain b/plain
1 hunks, 2 lines changed
- examine changes to 'plain'? [Ynsfdaq?]
+ examine changes to 'plain'? [Ynesfdaq?]
@@ -9,3 +9,5 @@
7
8
9
+10
+11
- record this change to 'plain'? [Ynsfdaq?]
+ record this change to 'plain'? [Ynesfdaq?]
$ hg tip -p
changeset: 16:f9900b71a04c
@@ -627,11 +627,11 @@
> EOF
diff --git a/subdir/a b/subdir/a
1 hunks, 1 lines changed
- examine changes to 'subdir/a'? [Ynsfdaq?]
+ examine changes to 'subdir/a'? [Ynesfdaq?]
@@ -1,1 +1,2 @@
a
+a
- record this change to 'subdir/a'? [Ynsfdaq?]
+ record this change to 'subdir/a'? [Ynesfdaq?]
$ hg tip -p
changeset: 18:61be427a9deb
@@ -665,16 +665,17 @@
> EOF
diff --git a/subdir/f1 b/subdir/f1
1 hunks, 1 lines changed
- examine changes to 'subdir/f1'? [Ynsfdaq?]
+ examine changes to 'subdir/f1'? [Ynesfdaq?]
y - record this change
n - 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'? [Ynsfdaq?]
+ examine changes to 'subdir/f1'? [Ynesfdaq?]
abort: user quit
[255]
@@ -685,10 +686,10 @@
> EOF
diff --git a/subdir/f1 b/subdir/f1
1 hunks, 1 lines changed
- examine changes to 'subdir/f1'? [Ynsfdaq?]
+ examine changes to 'subdir/f1'? [Ynesfdaq?]
diff --git a/subdir/f2 b/subdir/f2
1 hunks, 1 lines changed
- examine changes to 'subdir/f2'? [Ynsfdaq?] abort: response expected
+ examine changes to 'subdir/f2'? [Ynesfdaq?] abort: response expected
[255]
No
@@ -698,10 +699,10 @@
> EOF
diff --git a/subdir/f1 b/subdir/f1
1 hunks, 1 lines changed
- examine changes to 'subdir/f1'? [Ynsfdaq?]
+ examine changes to 'subdir/f1'? [Ynesfdaq?]
diff --git a/subdir/f2 b/subdir/f2
1 hunks, 1 lines changed
- examine changes to 'subdir/f2'? [Ynsfdaq?] abort: response expected
+ examine changes to 'subdir/f2'? [Ynesfdaq?] abort: response expected
[255]
f, quit
@@ -712,10 +713,10 @@
> EOF
diff --git a/subdir/f1 b/subdir/f1
1 hunks, 1 lines changed
- examine changes to 'subdir/f1'? [Ynsfdaq?]
+ examine changes to 'subdir/f1'? [Ynesfdaq?]
diff --git a/subdir/f2 b/subdir/f2
1 hunks, 1 lines changed
- examine changes to 'subdir/f2'? [Ynsfdaq?]
+ examine changes to 'subdir/f2'? [Ynesfdaq?]
abort: user quit
[255]
@@ -727,10 +728,10 @@
> EOF
diff --git a/subdir/f1 b/subdir/f1
1 hunks, 1 lines changed
- examine changes to 'subdir/f1'? [Ynsfdaq?]
+ examine changes to 'subdir/f1'? [Ynesfdaq?]
diff --git a/subdir/f2 b/subdir/f2
1 hunks, 1 lines changed
- examine changes to 'subdir/f2'? [Ynsfdaq?]
+ examine changes to 'subdir/f2'? [Ynesfdaq?]
$ hg tip -p
changeset: 20:b3df3dda369a
@@ -754,7 +755,7 @@
> EOF
diff --git a/subdir/f1 b/subdir/f1
1 hunks, 1 lines changed
- examine changes to 'subdir/f1'? [Ynsfdaq?]
+ examine changes to 'subdir/f1'? [Ynesfdaq?]
$ hg tip -p
changeset: 21:38ec577f126b
@@ -784,12 +785,12 @@
old mode 100644
new mode 100755
1 hunks, 1 lines changed
- examine changes to 'subdir/f1'? [Ynsfdaq?]
+ examine changes to 'subdir/f1'? [Ynesfdaq?]
@@ -1,2 +1,3 @@
a
a
+a
- record this change to 'subdir/f1'? [Ynsfdaq?]
+ record this change to 'subdir/f1'? [Ynesfdaq?]
$ hg tip --config diff.git=True -p
changeset: 22:3261adceb075
@@ -819,13 +820,13 @@
> EOF
diff --git a/subdir/f1 b/subdir/f1
1 hunks, 1 lines changed
- examine changes to 'subdir/f1'? [Ynsfdaq?]
+ examine changes to 'subdir/f1'? [Ynesfdaq?]
@@ -1,3 +1,4 @@
a
a
a
+b
- record this change to 'subdir/f1'? [Ynsfdaq?]
+ record this change to 'subdir/f1'? [Ynesfdaq?]
$ hg tip --config diff.git=True -p
changeset: 23:b429867550db
@@ -857,13 +858,13 @@
old mode 100755
new mode 100644
1 hunks, 1 lines changed
- examine changes to 'subdir/f1'? [Ynsfdaq?]
+ examine changes to 'subdir/f1'? [Ynesfdaq?]
@@ -2,3 +2,4 @@
a
a
b
+c
- record this change to 'subdir/f1'? [Ynsfdaq?]
+ record this change to 'subdir/f1'? [Ynesfdaq?]
$ hg tip --config diff.git=True -p
changeset: 24:0b082130c20a
@@ -914,6 +915,150 @@
$ hg up -C
0 files updated, 0 files merged, 1 files removed, 0 files unresolved
+Editing patch
+
+ $ cat > editor << '__EOF__'
+ > #!/bin/sh
+ > sed -i -e 7d -e '5s/^-/ /' "$1"
+ > __EOF__
+ $ chmod +x editor
+ $ 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="'`pwd`'"/editor hg record -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?]
+ @@ -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?]
+ $ 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 record <<EOF
+ > e
+ > q
+ > EOF
+ diff --git a/editedfile b/editedfile
+ 1 hunks, 1 lines changed
+ examine changes to 'editedfile'? [Ynesfdaq?]
+ cannot edit patch for whole file
+ examine changes to 'editedfile'? [Ynesfdaq?]
+ abort: user quit
+ [255]
+ $ hg revert editedfile
+
+Removing changes from patch
+
+ $ sed -i -e '3s/third/second/' -e '2s/will/will not/' -e 1d editedfile
+ $ echo "This line has been added" >> editedfile
+ $ cat > editor << '__EOF__'
+ > #!/bin/sh
+ > sed -i -e 's/^[-+]/ /' "$1"
+ > __EOF__
+ $ chmod +x editor
+ $ HGEDITOR="'`pwd`'"/editor hg record <<EOF
+ > y
+ > e
+ > EOF
+ diff --git a/editedfile b/editedfile
+ 1 hunks, 3 lines changed
+ examine changes to 'editedfile'? [Ynesfdaq?]
+ @@ -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?]
+ no changes to record
+ $ 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 -i -e '3s/third/second/' -e '2s/will/will not/' -e 1d editedfile
+ $ echo "This line has been added" >> editedfile
+ $ cat > editor << '__EOF__'
+ > #!/bin/sh
+ > sed -i s/This/That/ "$1"
+ > __EOF__
+ $ chmod +x editor
+ $ HGEDITOR="'`pwd`'"/editor hg record <<EOF
+ > y
+ > e
+ > EOF
+ diff --git a/editedfile b/editedfile
+ 1 hunks, 3 lines changed
+ examine changes to 'editedfile'? [Ynesfdaq?]
+ @@ -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?]
+ 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
+ $ hg up -C
+ 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
+
With win32text
$ echo '[extensions]' >> .hg/hgrc
@@ -931,31 +1076,30 @@
$ echo 'warn = no' >> .hg/hgrc
$ echo d >> subdir/f1
- $ hg record -d '23 0' -mw1 <<EOF
+ $ hg record -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'? [Ynsfdaq?]
+ examine changes to 'subdir/f1'? [Ynesfdaq?]
@@ -3,3 +3,4 @@
a
b
c
+d
- record this change to 'subdir/f1'? [Ynsfdaq?]
+ record this change to 'subdir/f1'? [Ynesfdaq?]
$ hg tip -p
- changeset: 26:b8306e70edc4
+ changeset: 28:287ad1f41a72
tag: tip
- parent: 24:0b082130c20a
user: test
- date: Thu Jan 01 00:00:23 1970 +0000
+ date: Thu Jan 01 00:00:24 1970 +0000
summary: w1
- diff -r 0b082130c20a -r b8306e70edc4 subdir/f1
- --- a/subdir/f1 Thu Jan 01 00:00:22 1970 +0000
- +++ b/subdir/f1 Thu Jan 01 00:00:23 1970 +0000
+ diff -r 65ce23a81197 -r 287ad1f41a72 subdir/f1
+ --- 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