##// END OF EJS Templates
diffstat: fix parsing of filenames with spaces...
diffstat: fix parsing of filenames with spaces The patch changes the output of "hg diff --stat" when one file whose filename has spaces has changed, making it get the full filename instead of just the substring between the last space and the end of the filename. It also changes the diffstat generated by "hg email -d" when one of the commit messages starts with "diff". Because of the regex used to parse the filename, the diffstat generated by "hg email -d" will still be not correct if a commit message starts with "diff -r ". Before the patch Mercurial has the following behavior: $ echo "foobar">"file with spaces" $ hg add "file with spaces" $ hg diff --stat spaces | 1 + 1 files changed, 1 insertions(+), 0 deletions(-) $ hg diff --git --stat file with spaces | 1 + 1 files changed, 1 insertions(+), 0 deletions(-) After the patch: $ echo "foobar">"file with spaces" $ hg add "file with spaces" $ hg diff --stat file with spaces | 1 + 1 files changed, 1 insertions(+), 0 deletions(-) $ hg diff --git --stat file with spaces | 1 + 1 files changed, 1 insertions(+), 0 deletions(-) Before the patch: $ hg add mercurial/patch.py tests/tests-diffstat.t $ hg commit -m "diffstat: fix parsing of filenames" $ hg email -d --test tip This patch series consists of 1 patches. diffstat: fix parsing of filenames [...] filenames | 0 mercurial/patch.py | 6 ++++-- tests/test-diffstat.t | 17 +++++++++++++++++ 3 files changed, 21 insertions(+), 2 deletions(-) [...] After the patch: $ hg email -d --test tip This patch series consists of 1 patches. diffstat: fix parsing of filenames [...] mercurial/patch.py | 6 ++++-- tests/test-diffstat.t | 17 +++++++++++++++++ 3 files changed, 21 insertions(+), 2 deletions(-) [...]

File last commit:

r12664:545ec177 default
r13395:104c9ed9 default
Show More
test-merge1.t
176 lines | 3.9 KiB | text/troff | Tads3Lexer
Pradeepkumar Gayam
tests: unify test-merge1
r11975 $ cat <<EOF > merge
> import sys, os
>
> try:
> import msvcrt
> msvcrt.setmode(sys.stdout.fileno(), os.O_BINARY)
> msvcrt.setmode(sys.stderr.fileno(), os.O_BINARY)
> except ImportError:
> pass
>
> print "merging for", os.path.basename(sys.argv[1])
> EOF
$ HGMERGE="python ../merge"; export HGMERGE
$ mkdir t
$ cd t
$ hg init
$ echo This is file a1 > a
$ hg add a
Martin Geisler
tests: remove unneeded -d flags...
r12156 $ hg commit -m "commit #0"
Pradeepkumar Gayam
tests: unify test-merge1
r11975 $ echo This is file b1 > b
$ hg add b
Martin Geisler
tests: remove unneeded -d flags...
r12156 $ hg commit -m "commit #1"
Pradeepkumar Gayam
tests: unify test-merge1
r11975
$ hg update 0
0 files updated, 0 files merged, 1 files removed, 0 files unresolved
$ echo This is file c1 > c
$ hg add c
Martin Geisler
tests: remove unneeded -d flags...
r12156 $ hg commit -m "commit #2"
Pradeepkumar Gayam
tests: unify test-merge1
r11975 created new head
$ echo This is file b1 > b
no merges expected
$ hg merge -P 1
Martin Geisler
tests: remove unneeded -d flags...
r12156 changeset: 1:b8bb4a988f25
Pradeepkumar Gayam
tests: unify test-merge1
r11975 user: test
Martin Geisler
tests: remove unneeded -d flags...
r12156 date: Thu Jan 01 00:00:00 1970 +0000
Pradeepkumar Gayam
tests: unify test-merge1
r11975 summary: commit #1
$ hg merge 1
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)
$ hg diff --nodates
Martin Geisler
tests: remove unneeded -d flags...
r12156 diff -r 49035e18a8e6 b
Pradeepkumar Gayam
tests: unify test-merge1
r11975 --- /dev/null
+++ b/b
@@ -0,0 +1,1 @@
+This is file b1
$ hg status
M b
$ cd ..; rm -r t
$ mkdir t
$ cd t
$ hg init
$ echo This is file a1 > a
$ hg add a
Martin Geisler
tests: remove unneeded -d flags...
r12156 $ hg commit -m "commit #0"
Pradeepkumar Gayam
tests: unify test-merge1
r11975 $ echo This is file b1 > b
$ hg add b
Martin Geisler
tests: remove unneeded -d flags...
r12156 $ hg commit -m "commit #1"
Pradeepkumar Gayam
tests: unify test-merge1
r11975
$ hg update 0
0 files updated, 0 files merged, 1 files removed, 0 files unresolved
$ echo This is file c1 > c
$ hg add c
Martin Geisler
tests: remove unneeded -d flags...
r12156 $ hg commit -m "commit #2"
Pradeepkumar Gayam
tests: unify test-merge1
r11975 created new head
$ echo This is file b2 > b
merge should fail
$ hg merge 1
abort: untracked file in working directory differs from file in requested revision: 'b'
Matt Mackall
tests: add exit codes to unified tests
r12316 [255]
Pradeepkumar Gayam
tests: unify test-merge1
r11975 merge of b expected
$ hg merge -f 1
merging for b
merging b
0 files updated, 1 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)
$ hg diff --nodates
Martin Geisler
tests: remove unneeded -d flags...
r12156 diff -r 49035e18a8e6 b
Pradeepkumar Gayam
tests: unify test-merge1
r11975 --- /dev/null
+++ b/b
@@ -0,0 +1,1 @@
+This is file b2
$ hg status
M b
$ cd ..; rm -r t
$ mkdir t
$ cd t
$ hg init
$ echo This is file a1 > a
$ hg add a
Martin Geisler
tests: remove unneeded -d flags...
r12156 $ hg commit -m "commit #0"
Pradeepkumar Gayam
tests: unify test-merge1
r11975 $ echo This is file b1 > b
$ hg add b
Martin Geisler
tests: remove unneeded -d flags...
r12156 $ hg commit -m "commit #1"
Pradeepkumar Gayam
tests: unify test-merge1
r11975 $ echo This is file b22 > b
Martin Geisler
tests: remove unneeded -d flags...
r12156 $ hg commit -m "commit #2"
Pradeepkumar Gayam
tests: unify test-merge1
r11975 $ hg update 1
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ echo This is file c1 > c
$ hg add c
Martin Geisler
tests: remove unneeded -d flags...
r12156 $ hg commit -m "commit #3"
Pradeepkumar Gayam
tests: unify test-merge1
r11975 created new head
Contents of b should be "this is file b1"
$ cat b
This is file b1
$ echo This is file b22 > b
merge fails
$ hg merge 2
abort: outstanding uncommitted changes (use 'hg status' to list changes)
Matt Mackall
tests: add exit codes to unified tests
r12316 [255]
Pradeepkumar Gayam
tests: unify test-merge1
r11975 $ echo %% merge expected!
%% merge expected!
$ hg merge -f 2
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)
$ hg diff --nodates
Martin Geisler
tests: remove unneeded -d flags...
r12156 diff -r 85de557015a8 b
Pradeepkumar Gayam
tests: unify test-merge1
r11975 --- a/b
+++ b/b
@@ -1,1 +1,1 @@
-This is file b1
+This is file b22
$ hg status
M b
$ cd ..; rm -r t
$ mkdir t
$ cd t
$ hg init
$ echo This is file a1 > a
$ hg add a
Martin Geisler
tests: remove unneeded -d flags...
r12156 $ hg commit -m "commit #0"
Pradeepkumar Gayam
tests: unify test-merge1
r11975 $ echo This is file b1 > b
$ hg add b
Martin Geisler
tests: remove unneeded -d flags...
r12156 $ hg commit -m "commit #1"
Pradeepkumar Gayam
tests: unify test-merge1
r11975 $ echo This is file b22 > b
Martin Geisler
tests: remove unneeded -d flags...
r12156 $ hg commit -m "commit #2"
Pradeepkumar Gayam
tests: unify test-merge1
r11975 $ hg update 1
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ echo This is file c1 > c
$ hg add c
Martin Geisler
tests: remove unneeded -d flags...
r12156 $ hg commit -m "commit #3"
Pradeepkumar Gayam
tests: unify test-merge1
r11975 created new head
$ echo This is file b33 > b
merge of b should fail
$ hg merge 2
abort: outstanding uncommitted changes (use 'hg status' to list changes)
Matt Mackall
tests: add exit codes to unified tests
r12316 [255]
Pradeepkumar Gayam
tests: unify test-merge1
r11975 merge of b expected
$ hg merge -f 2
merging for b
merging b
0 files updated, 1 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)
$ hg diff --nodates
Martin Geisler
tests: remove unneeded -d flags...
r12156 diff -r 85de557015a8 b
Pradeepkumar Gayam
tests: unify test-merge1
r11975 --- a/b
+++ b/b
@@ -1,1 +1,1 @@
-This is file b1
+This is file b33
$ hg status
M b
Matt Mackall
merge: handle no file parent in backwards merge (issue2364)
r12664
Test for issue2364
$ hg up -qC .
$ hg rm b
$ hg ci -md
$ hg revert -r -2 b
$ hg up -q -- -2