Mercurial > hg
changeset 12074:35c143e85b1b
tests: unify test-record
author | Dan Villiom Podlaski Christiansen <danchr@gmail.com> |
---|---|
date | Fri, 27 Aug 2010 16:25:47 +0200 |
parents | adfff89e6058 |
children | f585c9bb85c1 |
files | tests/test-record tests/test-record.out tests/test-record.t |
diffstat | 3 files changed, 975 insertions(+), 1002 deletions(-) [+] |
line wrap: on
line diff
--- a/tests/test-record Fri Aug 27 16:25:47 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,332 +0,0 @@ -#!/bin/sh - -echo "[ui]" >> $HGRCPATH -echo "interactive=true" >> $HGRCPATH -echo "[extensions]" >> $HGRCPATH -echo "record=" >> $HGRCPATH - -echo % help - -hg help record - -hg init a -cd a - -echo % select no files - -touch empty-rw -hg add empty-rw -hg record empty-rw<<EOF -n -EOF -echo; hg tip -p - -echo % select files but no hunks - -hg record empty-rw<<EOF -y -n -EOF -echo; hg tip -p - -echo % record empty file - -hg record -d '0 0' -m empty empty-rw<<EOF -y -y -EOF -echo; hg tip -p - -echo % summary shows we updated to the new cset -hg summary -echo - -echo % rename empty file - -hg mv empty-rw empty-rename -hg record -d '1 0' -m rename<<EOF -y -EOF -echo; hg tip -p - -echo % copy empty file - -hg cp empty-rename empty-copy -hg record -d '2 0' -m copy<<EOF -y -EOF -echo; hg tip -p - -echo % delete empty file - -hg rm empty-copy -hg record -d '3 0' -m delete<<EOF -y -EOF -echo; hg tip -p - -echo % add binary file - -hg bundle --base -2 tip.bundle -hg add tip.bundle -hg record -d '4 0' -m binary<<EOF -y -EOF -echo; hg tip -p - -echo % change binary file - -hg bundle --base -2 tip.bundle -hg record -d '5 0' -m binary-change<<EOF -y -EOF -echo; hg tip -p - -echo % rename and change binary file - -hg mv tip.bundle top.bundle -hg bundle --base -2 top.bundle -hg record -d '6 0' -m binary-change-rename<<EOF -y -EOF -echo; hg tip -p - -echo % 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 record -d '7 0' -m plain plain<<EOF -y -y -EOF -echo; hg tip -p - -echo % modify end of plain file - -echo 11 >> plain -hg record -d '8 0' -m end plain <<EOF -y -y -EOF - -echo % modify end of plain file, no EOL - -hg tip --template '{node}' >> plain -hg record -d '9 0' -m noeol plain <<EOF -y -y -EOF - -echo % modify end of plain file, add EOL - -echo >> plain -hg record -d '10 0' -m eol plain <<EOF -y -y -y -EOF - -echo % modify beginning, trim end, record both - -rm plain -for i in 2 2 3 4 5 6 7 8 9 10; do - echo $i >> plain -done - -hg record -d '10 0' -m begin-and-end plain <<EOF -y -y -y -EOF -echo; hg tip -p - -echo % trim beginning, modify end - -rm plain -for i in 4 5 6 7 8 9 10.new; do - echo $i >> plain -done - -echo % record end - -hg record -d '11 0' -m end-only plain <<EOF -y -n -y -EOF -echo; hg tip -p - -echo % record beginning - -hg record -d '12 0' -m begin-only plain <<EOF -y -y -EOF -echo; hg tip -p - -echo % 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 - -echo % record end - -hg record --traceback -d '13 0' -m end-again plain<<EOF -y -n -y -EOF - -echo % 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 - -echo % record beginning, middle - -hg record -d '14 0' -m middle-only plain <<EOF -y -y -y -n -EOF -echo; hg tip -p - -echo % record end - -hg record -d '15 0' -m end-only plain <<EOF -y -y -EOF -echo; hg tip -p - -mkdir subdir -cd subdir -echo a > a -hg ci -d '16 0' -Amsubdir - -echo a >> a -hg record -d '16 0' -m subdir-change a <<EOF -y -y -EOF -echo; hg tip -p - -echo a > f1 -echo b > f2 -hg add f1 f2 - -hg ci -mz -d '17 0' - -echo a >> f1 -echo b >> f2 - -echo % help, quit - -hg record <<EOF -? -q -EOF - -echo % skip - -hg record <<EOF -s -EOF - -echo % no - -hg record <<EOF -n -EOF - -echo % f, quit - -hg record <<EOF -f -q -EOF - -echo % s, all - -hg record -d '18 0' -mx <<EOF -s -a -EOF -echo; hg tip -p - -echo % f - -hg record -d '19 0' -my <<EOF -f -EOF -echo; hg tip -p - -echo % preserve chmod +x - -chmod +x f1 -echo a >> f1 -hg record -d '20 0' -mz <<EOF -y -y -y -EOF -echo; hg tip --config diff.git=True -p - -echo % preserve execute permission on original - -echo b >> f1 -hg record -d '21 0' -maa <<EOF -y -y -y -EOF -echo; hg tip --config diff.git=True -p - -echo % preserve chmod -x - -chmod -x f1 -echo c >> f1 -hg record -d '22 0' -mab <<EOF -y -y -y -EOF -echo; hg tip --config diff.git=True -p - -cd .. - -echo % abort early when a merge is in progress -hg up 4 -touch iwillmergethat -hg add iwillmergethat -hg branch thatbranch -hg ci -m'new head' -hg up default -hg merge thatbranch -echo; hg record -m'will abort' -hg up -C - -echo % with win32ext -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 - -echo d >> subdir/f1 -hg record -d '23 0' -mw1 <<EOF -y -y -EOF -echo; hg tip -p
--- a/tests/test-record.out Fri Aug 27 16:25:47 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,670 +0,0 @@ -% help -hg record [OPTION]... [FILE]... - -interactively select changes to commit - - If a list of files is omitted, all changes reported by "hg status" will be - candidates for recording. - - See "hg help dates" for a list of formats valid for -d/--date. - - You will be prompted for whether to record changes to each modified file, - and for files with multiple changes, for each change to use. For each - query, the following responses are possible: - - y - record this change - n - skip this change - - 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 - - This command is not available when committing a merge. - -options: - - -A --addremove mark new/missing files as added/removed before - committing - --close-branch mark a branch as closed, hiding it from the branch - list - -I --include PATTERN [+] include names matching the given patterns - -X --exclude PATTERN [+] exclude names matching the given patterns - -m --message TEXT use text as commit message - -l --logfile FILE read commit message from file - -d --date DATE record datecode as commit date - -u --user USER record the specified user as committer - -[+] marked option can be specified multiple times - -use "hg -v help record" to show global options -% select no files -diff --git a/empty-rw b/empty-rw -new file mode 100644 -examine changes to 'empty-rw'? [Ynsfdaq?] -no changes to record - -changeset: -1:000000000000 -tag: tip -user: -date: Thu Jan 01 00:00:00 1970 +0000 - - -% select files but no hunks -diff --git a/empty-rw b/empty-rw -new file mode 100644 -examine changes to 'empty-rw'? [Ynsfdaq?] -abort: empty commit message - -changeset: -1:000000000000 -tag: tip -user: -date: Thu Jan 01 00:00:00 1970 +0000 - - -% record empty file -diff --git a/empty-rw b/empty-rw -new file mode 100644 -examine changes to 'empty-rw'? [Ynsfdaq?] - -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 -parent: 0:c0708cf4e46e tip - empty -branch: default -commit: (clean) -update: (current) - -% rename empty file -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?] - -changeset: 1:d695e8dcb197 -tag: tip -user: test -date: Thu Jan 01 00:00:01 1970 +0000 -summary: rename - - -% copy empty file -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?] - -changeset: 2:1d4b90bea524 -tag: tip -user: test -date: Thu Jan 01 00:00:02 1970 +0000 -summary: copy - - -% delete empty file -diff --git a/empty-copy b/empty-copy -deleted file mode 100644 -examine changes to 'empty-copy'? [Ynsfdaq?] - -changeset: 3:b39a238f01a1 -tag: tip -user: test -date: Thu Jan 01 00:00:03 1970 +0000 -summary: delete - - -% add binary file -1 changesets found -diff --git a/tip.bundle b/tip.bundle -new file mode 100644 -this is a binary file -examine changes to 'tip.bundle'? [Ynsfdaq?] - -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 -1 changesets found -diff --git a/tip.bundle b/tip.bundle -this modifies a binary file (all or nothing) -examine changes to 'tip.bundle'? [Ynsfdaq?] - -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 -1 changesets found -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'? [Ynsfdaq?] - -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 -diff --git a/plain b/plain -new file mode 100644 -examine changes to 'plain'? [Ynsfdaq?] - -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 -diff --git a/plain b/plain -1 hunks, 1 lines changed -examine changes to 'plain'? [Ynsfdaq?] -@@ -8,3 +8,4 @@ - 8 - 9 - 10 -+11 -record this change to 'plain'? [Ynsfdaq?] -% modify end of plain file, no EOL -diff --git a/plain b/plain -1 hunks, 1 lines changed -examine changes to 'plain'? [Ynsfdaq?] -@@ -9,3 +9,4 @@ - 9 - 10 - 11 -+7264f99c5f5ff3261504828afa4fb4d406c3af54 -\ No newline at end of file -record this change to 'plain'? [Ynsfdaq?] -% modify end of plain file, add EOL -diff --git a/plain b/plain -1 hunks, 1 lines changed -examine changes to 'plain'? [Ynsfdaq?] -@@ -9,4 +9,4 @@ - 9 - 10 - 11 --7264f99c5f5ff3261504828afa4fb4d406c3af54 -\ No newline at end of file -+7264f99c5f5ff3261504828afa4fb4d406c3af54 -record this change to 'plain'? [Ynsfdaq?] -% modify beginning, trim end, record both -diff --git a/plain b/plain -2 hunks, 3 lines changed -examine changes to 'plain'? [Ynsfdaq?] -@@ -1,4 +1,4 @@ --1 -+2 - 2 - 3 - 4 -record change 1/2 to 'plain'? [Ynsfdaq?] -@@ -8,5 +8,3 @@ - 8 - 9 - 10 --11 --7264f99c5f5ff3261504828afa4fb4d406c3af54 -record change 2/2 to 'plain'? [Ynsfdaq?] - -changeset: 11:efca65c9b09e -tag: tip -user: test -date: Thu Jan 01 00:00:10 1970 +0000 -summary: begin-and-end - -diff -r cd07d48e8cbe -r efca65c9b09e plain ---- 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 - -% trim beginning, modify end -% record end -diff --git a/plain b/plain -2 hunks, 4 lines changed -examine changes to 'plain'? [Ynsfdaq?] -@@ -1,9 +1,6 @@ --2 --2 --3 - 4 - 5 - 6 - 7 - 8 - 9 -record change 1/2 to 'plain'? [Ynsfdaq?] -@@ -4,7 +1,7 @@ - 4 - 5 - 6 - 7 - 8 - 9 --10 -+10.new -record change 2/2 to 'plain'? [Ynsfdaq?] - -changeset: 12:7d1e66983c15 -tag: tip -user: test -date: Thu Jan 01 00:00:11 1970 +0000 -summary: end-only - -diff -r efca65c9b09e -r 7d1e66983c15 plain ---- 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 -diff --git a/plain b/plain -1 hunks, 3 lines changed -examine changes to 'plain'? [Ynsfdaq?] -@@ -1,6 +1,3 @@ --2 --2 --3 - 4 - 5 - 6 -record this change to 'plain'? [Ynsfdaq?] - -changeset: 13:a09fc62a0e61 -tag: tip -user: test -date: Thu Jan 01 00:00:12 1970 +0000 -summary: begin-only - -diff -r 7d1e66983c15 -r a09fc62a0e61 plain ---- 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 -% record end -diff --git a/plain b/plain -2 hunks, 4 lines changed -examine changes to 'plain'? [Ynsfdaq?] -@@ -1,6 +1,9 @@ -+1 -+2 -+3 - 4 - 5 - 6 - 7 - 8 - 9 -record change 1/2 to 'plain'? [Ynsfdaq?] -@@ -1,7 +4,6 @@ - 4 - 5 - 6 - 7 - 8 - 9 --10.new -record change 2/2 to 'plain'? [Ynsfdaq?] -% add to beginning, middle, end -% record beginning, middle -diff --git a/plain b/plain -3 hunks, 7 lines changed -examine changes to 'plain'? [Ynsfdaq?] -@@ -1,2 +1,5 @@ -+1 -+2 -+3 - 4 - 5 -record change 1/3 to 'plain'? [Ynsfdaq?] -@@ -1,6 +4,8 @@ - 4 - 5 -+5.new -+5.reallynew - 6 - 7 - 8 - 9 -record change 2/3 to 'plain'? [Ynsfdaq?] -@@ -3,4 +8,6 @@ - 6 - 7 - 8 - 9 -+10 -+11 -record change 3/3 to 'plain'? [Ynsfdaq?] - -changeset: 15:7d137997f3a6 -tag: tip -user: test -date: Thu Jan 01 00:00:14 1970 +0000 -summary: middle-only - -diff -r c0b8e5fb0be6 -r 7d137997f3a6 plain ---- 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 -diff --git a/plain b/plain -1 hunks, 2 lines changed -examine changes to 'plain'? [Ynsfdaq?] -@@ -9,3 +9,5 @@ - 7 - 8 - 9 -+10 -+11 -record this change to 'plain'? [Ynsfdaq?] - -changeset: 16:4959e3ff13eb -tag: tip -user: test -date: Thu Jan 01 00:00:15 1970 +0000 -summary: end-only - -diff -r 7d137997f3a6 -r 4959e3ff13eb plain ---- 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 - -adding subdir/a -diff --git a/subdir/a b/subdir/a -1 hunks, 1 lines changed -examine changes to 'subdir/a'? [Ynsfdaq?] -@@ -1,1 +1,2 @@ - a -+a -record this change to 'subdir/a'? [Ynsfdaq?] - -changeset: 18:40698cd490b2 -tag: tip -user: test -date: Thu Jan 01 00:00:16 1970 +0000 -summary: subdir-change - -diff -r 661eacdc08b9 -r 40698cd490b2 subdir/a ---- 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 - -% help, quit -diff --git a/subdir/f1 b/subdir/f1 -1 hunks, 1 lines changed -examine changes to 'subdir/f1'? [Ynsfdaq?] -y - record this change -n - skip this change -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?] -abort: user quit -% skip -diff --git a/subdir/f1 b/subdir/f1 -1 hunks, 1 lines changed -examine changes to 'subdir/f1'? [Ynsfdaq?] -diff --git a/subdir/f2 b/subdir/f2 -1 hunks, 1 lines changed -examine changes to 'subdir/f2'? [Ynsfdaq?] abort: response expected -% no -diff --git a/subdir/f1 b/subdir/f1 -1 hunks, 1 lines changed -examine changes to 'subdir/f1'? [Ynsfdaq?] -diff --git a/subdir/f2 b/subdir/f2 -1 hunks, 1 lines changed -examine changes to 'subdir/f2'? [Ynsfdaq?] abort: response expected -% f, quit -diff --git a/subdir/f1 b/subdir/f1 -1 hunks, 1 lines changed -examine changes to 'subdir/f1'? [Ynsfdaq?] -diff --git a/subdir/f2 b/subdir/f2 -1 hunks, 1 lines changed -examine changes to 'subdir/f2'? [Ynsfdaq?] -abort: user quit -% s, all -diff --git a/subdir/f1 b/subdir/f1 -1 hunks, 1 lines changed -examine changes to 'subdir/f1'? [Ynsfdaq?] -diff --git a/subdir/f2 b/subdir/f2 -1 hunks, 1 lines changed -examine changes to 'subdir/f2'? [Ynsfdaq?] - -changeset: 20:d2d8c25276a8 -tag: tip -user: test -date: Thu Jan 01 00:00:18 1970 +0000 -summary: x - -diff -r 25eb2a7694fb -r d2d8c25276a8 subdir/f2 ---- 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 -diff --git a/subdir/f1 b/subdir/f1 -1 hunks, 1 lines changed -examine changes to 'subdir/f1'? [Ynsfdaq?] - -changeset: 21:1013f51ce32f -tag: tip -user: test -date: Thu Jan 01 00:00:19 1970 +0000 -summary: y - -diff -r d2d8c25276a8 -r 1013f51ce32f subdir/f1 ---- 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 - -% preserve chmod +x -diff --git a/subdir/f1 b/subdir/f1 -old mode 100644 -new mode 100755 -1 hunks, 1 lines changed -examine changes to 'subdir/f1'? [Ynsfdaq?] -@@ -1,2 +1,3 @@ - a - a -+a -record this change to 'subdir/f1'? [Ynsfdaq?] - -changeset: 22:5df857735621 -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 -diff --git a/subdir/f1 b/subdir/f1 -1 hunks, 1 lines changed -examine changes to 'subdir/f1'? [Ynsfdaq?] -@@ -1,3 +1,4 @@ - a - a - a -+b -record this change to 'subdir/f1'? [Ynsfdaq?] - -changeset: 23:a4ae36a78715 -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 -diff --git a/subdir/f1 b/subdir/f1 -old mode 100755 -new mode 100644 -1 hunks, 1 lines changed -examine changes to 'subdir/f1'? [Ynsfdaq?] -@@ -2,3 +2,4 @@ - a - a - b -+c -record this change to 'subdir/f1'? [Ynsfdaq?] - -changeset: 24:1460f6e47966 -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 - -% abort early when a merge is in progress -1 files updated, 0 files merged, 5 files removed, 0 files unresolved -marked working directory as branch thatbranch -5 files updated, 0 files merged, 2 files removed, 0 files unresolved -1 files updated, 0 files merged, 0 files removed, 0 files unresolved -(branch merge, don't forget to commit) - -abort: cannot partially commit a merge (use hg commit instead) -0 files updated, 0 files merged, 1 files removed, 0 files unresolved -% with win32ext -diff --git a/subdir/f1 b/subdir/f1 -1 hunks, 1 lines changed -examine changes to 'subdir/f1'? [Ynsfdaq?] -@@ -3,3 +3,4 @@ - a - b - c -+d -record this change to 'subdir/f1'? [Ynsfdaq?] - -changeset: 26:5bacc1f6e9cf -tag: tip -parent: 24:1460f6e47966 -user: test -date: Thu Jan 01 00:00:23 1970 +0000 -summary: w1 - -diff -r 1460f6e47966 -r 5bacc1f6e9cf subdir/f1 ---- a/subdir/f1 Thu Jan 01 00:00:22 1970 +0000 -+++ b/subdir/f1 Thu Jan 01 00:00:23 1970 +0000 -@@ -3,3 +3,4 @@ - a - b - c -+d -
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/test-record.t Fri Aug 27 16:25:47 2010 +0200 @@ -0,0 +1,975 @@ +#!/bin/sh + + $ echo "[ui]" >> $HGRCPATH + $ echo "interactive=true" >> $HGRCPATH + $ echo "[extensions]" >> $HGRCPATH + $ echo "record=" >> $HGRCPATH + +Help + + $ hg help record + hg record [OPTION]... [FILE]... + + interactively select changes to commit + + If a list of files is omitted, all changes reported by "hg status" will be + candidates for recording. + + See "hg help dates" for a list of formats valid for -d/--date. + + You will be prompted for whether to record changes to each modified file, + and for files with multiple changes, for each change to use. For each + query, the following responses are possible: + + y - record this change + n - skip this change + + 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 + + This command is not available when committing a merge. + + options: + + -A --addremove mark new/missing files as added/removed before + committing + --close-branch mark a branch as closed, hiding it from the branch + list + -I --include PATTERN [+] include names matching the given patterns + -X --exclude PATTERN [+] exclude names matching the given patterns + -m --message TEXT use text as commit message + -l --logfile FILE read commit message from file + -d --date DATE record datecode as commit date + -u --user USER record the specified user as committer + + [+] marked option can be specified multiple times + + use "hg -v help record" to show global options + + $ hg init a + $ cd a + +Select no files + + $ touch empty-rw + $ hg add empty-rw + + $ hg record empty-rw<<EOF + > n + > EOF + diff --git a/empty-rw b/empty-rw + new file mode 100644 + examine changes to 'empty-rw'? [Ynsfdaq?] + no changes to record + + $ hg tip -p + changeset: -1:000000000000 + tag: tip + user: + date: Thu Jan 01 00:00:00 1970 +0000 + + + +Select files but no hunks + + $ hg record empty-rw<<EOF + > y + > n + > EOF + diff --git a/empty-rw b/empty-rw + new file mode 100644 + examine changes to 'empty-rw'? [Ynsfdaq?] + abort: empty commit message + + $ hg tip -p + changeset: -1:000000000000 + tag: tip + user: + date: Thu Jan 01 00:00:00 1970 +0000 + + + +Record empty file + + $ hg record -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'? [Ynsfdaq?] + + $ 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) + +Rename empty file + + $ hg mv empty-rw empty-rename + $ hg record -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'? [Ynsfdaq?] + + $ 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 record -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'? [Ynsfdaq?] + + $ 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 record -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'? [Ynsfdaq?] + + $ hg tip -p + changeset: 3:b39a238f01a1 + tag: tip + user: test + date: Thu Jan 01 00:00:03 1970 +0000 + summary: delete + + + +Add binary file + + $ hg bundle --base -2 tip.bundle + 1 changesets found + $ hg add tip.bundle + $ hg record -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'? [Ynsfdaq?] + + $ 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 + + $ hg bundle --base -2 tip.bundle + 1 changesets found + $ hg record -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'? [Ynsfdaq?] + + $ 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 + $ hg bundle --base -2 top.bundle + 1 changesets found + $ hg record -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'? [Ynsfdaq?] + + $ 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 record -d '7 0' -m plain plain<<EOF + > y + > y + > EOF + diff --git a/plain b/plain + new file mode 100644 + examine changes to 'plain'? [Ynsfdaq?] + + $ 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 + + $ echo 11 >> plain + $ hg record -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'? [Ynsfdaq?] + @@ -8,3 +8,4 @@ + 8 + 9 + 10 + +11 + record this change to 'plain'? [Ynsfdaq?] + +Modify end of plain file, no EOL + + $ hg tip --template '{node}' >> plain + $ hg record -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'? [Ynsfdaq?] + @@ -9,3 +9,4 @@ + 9 + 10 + 11 + +7264f99c5f5ff3261504828afa4fb4d406c3af54 + \ No newline at end of file + record this change to 'plain'? [Ynsfdaq?] + +Modify end of plain file, add EOL + + $ echo >> plain + $ hg record -d '10 0' -m eol plain <<EOF + > y + > y + > y + > EOF + diff --git a/plain b/plain + 1 hunks, 1 lines changed + examine changes to 'plain'? [Ynsfdaq?] + @@ -9,4 +9,4 @@ + 9 + 10 + 11 + -7264f99c5f5ff3261504828afa4fb4d406c3af54 + \ No newline at end of file + +7264f99c5f5ff3261504828afa4fb4d406c3af54 + record this change to 'plain'? [Ynsfdaq?] + +Modify beginning, trim end, record both + + $ rm plain + $ for i in 2 2 3 4 5 6 7 8 9 10; do + > echo $i >> plain + > done + + $ hg record -d '10 0' -m begin-and-end plain <<EOF + > y + > y + > y + > EOF + diff --git a/plain b/plain + 2 hunks, 3 lines changed + examine changes to 'plain'? [Ynsfdaq?] + @@ -1,4 +1,4 @@ + -1 + +2 + 2 + 3 + 4 + record change 1/2 to 'plain'? [Ynsfdaq?] + @@ -8,5 +8,3 @@ + 8 + 9 + 10 + -11 + -7264f99c5f5ff3261504828afa4fb4d406c3af54 + record change 2/2 to 'plain'? [Ynsfdaq?] + + $ hg tip -p + changeset: 11:efca65c9b09e + tag: tip + user: test + date: Thu Jan 01 00:00:10 1970 +0000 + summary: begin-and-end + + diff -r cd07d48e8cbe -r efca65c9b09e plain + --- 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 + + +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 record -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'? [Ynsfdaq?] + @@ -1,9 +1,6 @@ + -2 + -2 + -3 + 4 + 5 + 6 + 7 + 8 + 9 + record change 1/2 to 'plain'? [Ynsfdaq?] + @@ -4,7 +1,7 @@ + 4 + 5 + 6 + 7 + 8 + 9 + -10 + +10.new + record change 2/2 to 'plain'? [Ynsfdaq?] + + $ hg tip -p + changeset: 12:7d1e66983c15 + tag: tip + user: test + date: Thu Jan 01 00:00:11 1970 +0000 + summary: end-only + + diff -r efca65c9b09e -r 7d1e66983c15 plain + --- 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 record -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'? [Ynsfdaq?] + @@ -1,6 +1,3 @@ + -2 + -2 + -3 + 4 + 5 + 6 + record this change to 'plain'? [Ynsfdaq?] + + $ hg tip -p + changeset: 13:a09fc62a0e61 + tag: tip + user: test + date: Thu Jan 01 00:00:12 1970 +0000 + summary: begin-only + + diff -r 7d1e66983c15 -r a09fc62a0e61 plain + --- 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 record --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'? [Ynsfdaq?] + @@ -1,6 +1,9 @@ + +1 + +2 + +3 + 4 + 5 + 6 + 7 + 8 + 9 + record change 1/2 to 'plain'? [Ynsfdaq?] + @@ -1,7 +4,6 @@ + 4 + 5 + 6 + 7 + 8 + 9 + -10.new + record change 2/2 to 'plain'? [Ynsfdaq?] + +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 + + $ hg record -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'? [Ynsfdaq?] + @@ -1,2 +1,5 @@ + +1 + +2 + +3 + 4 + 5 + record change 1/3 to 'plain'? [Ynsfdaq?] + @@ -1,6 +4,8 @@ + 4 + 5 + +5.new + +5.reallynew + 6 + 7 + 8 + 9 + record change 2/3 to 'plain'? [Ynsfdaq?] + @@ -3,4 +8,6 @@ + 6 + 7 + 8 + 9 + +10 + +11 + record change 3/3 to 'plain'? [Ynsfdaq?] + + $ hg tip -p + changeset: 15:7d137997f3a6 + tag: tip + user: test + date: Thu Jan 01 00:00:14 1970 +0000 + summary: middle-only + + diff -r c0b8e5fb0be6 -r 7d137997f3a6 plain + --- 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 record -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'? [Ynsfdaq?] + @@ -9,3 +9,5 @@ + 7 + 8 + 9 + +10 + +11 + record this change to 'plain'? [Ynsfdaq?] + + $ hg tip -p + changeset: 16:4959e3ff13eb + tag: tip + user: test + date: Thu Jan 01 00:00:15 1970 +0000 + summary: end-only + + diff -r 7d137997f3a6 -r 4959e3ff13eb plain + --- 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 record -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'? [Ynsfdaq?] + @@ -1,1 +1,2 @@ + a + +a + record this change to 'subdir/a'? [Ynsfdaq?] + + $ hg tip -p + changeset: 18:40698cd490b2 + tag: tip + user: test + date: Thu Jan 01 00:00:16 1970 +0000 + summary: subdir-change + + diff -r 661eacdc08b9 -r 40698cd490b2 subdir/a + --- 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 record <<EOF + > ? + > q + > EOF + diff --git a/subdir/f1 b/subdir/f1 + 1 hunks, 1 lines changed + examine changes to 'subdir/f1'? [Ynsfdaq?] + y - record this change + n - skip this change + 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?] + abort: user quit + +Skip + + $ hg record <<EOF + > s + > EOF + diff --git a/subdir/f1 b/subdir/f1 + 1 hunks, 1 lines changed + examine changes to 'subdir/f1'? [Ynsfdaq?] + diff --git a/subdir/f2 b/subdir/f2 + 1 hunks, 1 lines changed + examine changes to 'subdir/f2'? [Ynsfdaq?] abort: response expected + +No + + $ hg record <<EOF + > n + > EOF + diff --git a/subdir/f1 b/subdir/f1 + 1 hunks, 1 lines changed + examine changes to 'subdir/f1'? [Ynsfdaq?] + diff --git a/subdir/f2 b/subdir/f2 + 1 hunks, 1 lines changed + examine changes to 'subdir/f2'? [Ynsfdaq?] abort: response expected + +f, quit + + $ hg record <<EOF + > f + > q + > EOF + diff --git a/subdir/f1 b/subdir/f1 + 1 hunks, 1 lines changed + examine changes to 'subdir/f1'? [Ynsfdaq?] + diff --git a/subdir/f2 b/subdir/f2 + 1 hunks, 1 lines changed + examine changes to 'subdir/f2'? [Ynsfdaq?] + abort: user quit + +s, all + + $ hg record -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'? [Ynsfdaq?] + diff --git a/subdir/f2 b/subdir/f2 + 1 hunks, 1 lines changed + examine changes to 'subdir/f2'? [Ynsfdaq?] + + $ hg tip -p + changeset: 20:d2d8c25276a8 + tag: tip + user: test + date: Thu Jan 01 00:00:18 1970 +0000 + summary: x + + diff -r 25eb2a7694fb -r d2d8c25276a8 subdir/f2 + --- 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 record -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'? [Ynsfdaq?] + + $ hg tip -p + changeset: 21:1013f51ce32f + tag: tip + user: test + date: Thu Jan 01 00:00:19 1970 +0000 + summary: y + + diff -r d2d8c25276a8 -r 1013f51ce32f subdir/f1 + --- 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 + + +Preserve chmod +x + + $ chmod +x f1 + $ echo a >> f1 + $ hg record -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'? [Ynsfdaq?] + @@ -1,2 +1,3 @@ + a + a + +a + record this change to 'subdir/f1'? [Ynsfdaq?] + + $ hg tip --config diff.git=True -p + changeset: 22:5df857735621 + 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 record -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'? [Ynsfdaq?] + @@ -1,3 +1,4 @@ + a + a + a + +b + record this change to 'subdir/f1'? [Ynsfdaq?] + + $ hg tip --config diff.git=True -p + changeset: 23:a4ae36a78715 + 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 record -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'? [Ynsfdaq?] + @@ -2,3 +2,4 @@ + a + a + b + +c + record this change to 'subdir/f1'? [Ynsfdaq?] + + $ hg tip --config diff.git=True -p + changeset: 24:1460f6e47966 + 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 + + + $ cd .. + +Abort early when a merge is in progress + + $ hg up 4 + 1 files updated, 0 files merged, 5 files removed, 0 files unresolved + + $ touch iwillmergethat + $ hg add iwillmergethat + + $ hg branch thatbranch + marked working directory as branch thatbranch + + $ hg ci -m'new head' + + $ hg up default + 5 files updated, 0 files merged, 2 files removed, 0 files unresolved + + $ hg merge thatbranch + 1 files updated, 0 files merged, 0 files removed, 0 files unresolved + (branch merge, don't forget to commit) + + $ hg record -m'will abort' + abort: cannot partially commit a merge (use hg commit instead) + + $ hg up -C + 0 files updated, 0 files merged, 1 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 + + $ echo d >> subdir/f1 + $ hg record -d '23 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?] + @@ -3,3 +3,4 @@ + a + b + c + +d + record this change to 'subdir/f1'? [Ynsfdaq?] + + $ hg tip -p + changeset: 26:5bacc1f6e9cf + tag: tip + parent: 24:1460f6e47966 + user: test + date: Thu Jan 01 00:00:23 1970 +0000 + summary: w1 + + diff -r 1460f6e47966 -r 5bacc1f6e9cf subdir/f1 + --- a/subdir/f1 Thu Jan 01 00:00:22 1970 +0000 + +++ b/subdir/f1 Thu Jan 01 00:00:23 1970 +0000 + @@ -3,3 +3,4 @@ + a + b + c + +d +