Mercurial > hg
changeset 12304:41dd368b6fe8
tests: unify test-extdiff
author | Adrian Buehlmann <adrian@cadifra.com> |
---|---|
date | Wed, 15 Sep 2010 16:27:39 +0200 |
parents | 4ab87473029d |
children | fd78997d1e6b |
files | tests/test-extdiff tests/test-extdiff.out tests/test-extdiff.t |
diffstat | 3 files changed, 166 insertions(+), 150 deletions(-) [+] |
line wrap: on
line diff
--- a/tests/test-extdiff Tue Sep 14 22:26:43 2010 -0500 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,73 +0,0 @@ -#!/bin/sh - -echo "[extensions]" >> $HGRCPATH -echo "extdiff=" >> $HGRCPATH - -hg init a -cd a -echo a > a -echo b > b -hg add -# should diff cloned directories -hg extdiff -o -r $opt - -echo "[extdiff]" >> $HGRCPATH -echo "cmd.falabala=echo" >> $HGRCPATH -echo "opts.falabala=diffing" >> $HGRCPATH - -hg falabala - -hg help falabala - -hg ci -d '0 0' -mtest1 - -echo b >> a -hg ci -d '1 0' -mtest2 - -# should diff cloned files directly -hg falabala -r 0:1 - -# test diff during merge -hg update -C 0 -echo c >> c -hg add c -hg ci -m "new branch" -d '1 0' -hg merge 1 -# should diff cloned file against wc file -hg falabala > out -# cleanup the output since the wc is a tmp directory -sed 's:\(diffing [^ ]* \).*\(\/test-extdiff\):\1[tmp]\2:' out -# test --change option -hg ci -d '2 0' -mtest3 -hg falabala -c 1 -# check diff are made from the first parent -hg falabala -c 3 || echo "diff-like tools yield a non-zero exit code" -#hg log - -echo -echo '% test extdiff of multiple files in tmp dir:' -hg update -C 0 > /dev/null -echo changed > a -echo changed > b -chmod +x b -echo '% diff in working directory, before' -hg diff --git -echo '% edit with extdiff -p' -# prepare custom diff/edit tool -cat > 'diff tool.py' << EOT -#!/usr/bin/env python -import time -time.sleep(1) # avoid unchanged-timestamp problems -file('a/a', 'ab').write('edited\n') -file('a/b', 'ab').write('edited\n') -EOT -chmod +x 'diff tool.py' -hg extdiff -p "`pwd`/diff tool.py" # will change to /tmp/extdiff.TMP and populate directories a.TMP and a and start tool -echo '% diff in working directory, after' -hg diff --git - -echo -echo % test extdiff with --option -hg extdiff -p echo -o this -c 1 -hg falabala -o this -c 1 -echo
--- a/tests/test-extdiff.out Tue Sep 14 22:26:43 2010 -0500 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,77 +0,0 @@ -adding a -adding b -Only in a: a -Only in a: b -diffing a.000000000000 a -hg falabala [OPTION]... [FILE]... - -use 'echo' to diff repository (or selected files) - - Show differences between revisions for the specified files, using the - 'echo' program. - - When two revision arguments are given, then changes are shown between - those revisions. If only one revision is specified then that revision is - compared to the working directory, and, when no revisions are specified, - the working directory files are compared to its parent. - -options: - - -o --option OPT [+] pass option to comparison program - -r --rev REV [+] revision - -c --change REV change made by revision - -I --include PATTERN [+] include names matching the given patterns - -X --exclude PATTERN [+] exclude names matching the given patterns - -[+] marked option can be specified multiple times - -use "hg -v help falabala" to show global options -diffing a.8a5febb7f867/a a.34eed99112ab/a -1 files updated, 0 files merged, 0 files removed, 0 files unresolved -created new head -1 files updated, 0 files merged, 0 files removed, 0 files unresolved -(branch merge, don't forget to commit) -diffing a.2a13a4d2da36/a [tmp]/test-extdiff/a/a -diffing a.8a5febb7f867/a a.34eed99112ab/a -diffing a.2a13a4d2da36/a a.46c0e4daeb72/a -diff-like tools yield a non-zero exit code - -% test extdiff of multiple files in tmp dir: -% diff in working directory, before -diff --git a/a b/a ---- a/a -+++ b/a -@@ -1,1 +1,1 @@ --a -+changed -diff --git a/b b/b -old mode 100644 -new mode 100755 ---- a/b -+++ b/b -@@ -1,1 +1,1 @@ --b -+changed -% edit with extdiff -p -% diff in working directory, after -diff --git a/a b/a ---- a/a -+++ b/a -@@ -1,1 +1,2 @@ --a -+changed -+edited -diff --git a/b b/b -old mode 100644 -new mode 100755 ---- a/b -+++ b/b -@@ -1,1 +1,2 @@ --b -+changed -+edited - -% test extdiff with --option -this a.8a5febb7f867/a a.34eed99112ab/a -diffing this a.8a5febb7f867/a a.34eed99112ab/a -
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/test-extdiff.t Wed Sep 15 16:27:39 2010 +0200 @@ -0,0 +1,166 @@ + $ echo "[extensions]" >> $HGRCPATH + $ echo "extdiff=" >> $HGRCPATH + + $ hg init a + $ cd a + $ echo a > a + $ echo b > b + $ hg add + adding a + adding b + +Should diff cloned directories: + + $ hg extdiff -o -r $opt + Only in a: a + Only in a: b + + $ echo "[extdiff]" >> $HGRCPATH + $ echo "cmd.falabala=echo" >> $HGRCPATH + $ echo "opts.falabala=diffing" >> $HGRCPATH + + $ hg falabala + diffing a.000000000000 a + + $ hg help falabala + hg falabala [OPTION]... [FILE]... + + use 'echo' to diff repository (or selected files) + + Show differences between revisions for the specified files, using the + 'echo' program. + + When two revision arguments are given, then changes are shown between + those revisions. If only one revision is specified then that revision is + compared to the working directory, and, when no revisions are specified, + the working directory files are compared to its parent. + + options: + + -o --option OPT [+] pass option to comparison program + -r --rev REV [+] revision + -c --change REV change made by revision + -I --include PATTERN [+] include names matching the given patterns + -X --exclude PATTERN [+] exclude names matching the given patterns + + [+] marked option can be specified multiple times + + use "hg -v help falabala" to show global options + + $ hg ci -d '0 0' -mtest1 + + $ echo b >> a + $ hg ci -d '1 0' -mtest2 + +Should diff cloned files directly: + + $ hg falabala -r 0:1 + diffing a.8a5febb7f867/a a.34eed99112ab/a + +Test diff during merge: + + $ hg update -C 0 + 1 files updated, 0 files merged, 0 files removed, 0 files unresolved + $ echo c >> c + $ hg add c + $ hg ci -m "new branch" -d '1 0' + created new head + $ hg merge 1 + 1 files updated, 0 files merged, 0 files removed, 0 files unresolved + (branch merge, don't forget to commit) + +Should diff cloned file against wc file: + + $ hg falabala > out + +Cleanup the output since the wc is a tmp directory: + + $ sed 's:\(diffing [^ ]* \).*\(\/test-extdiff\):\1[tmp]\2:' out + diffing a.2a13a4d2da36/a [tmp]/test-extdiff.t/a/a + +Test --change option: + + $ hg ci -d '2 0' -mtest3 + $ hg falabala -c 1 + diffing a.8a5febb7f867/a a.34eed99112ab/a + +Check diff are made from the first parent: + + $ hg falabala -c 3 || echo "diff-like tools yield a non-zero exit code" + diffing a.2a13a4d2da36/a a.46c0e4daeb72/a + diff-like tools yield a non-zero exit code + +Test extdiff of multiple files in tmp dir: + + $ hg update -C 0 > /dev/null + $ echo changed > a + $ echo changed > b + $ chmod +x b + +Diff in working directory, before: + + $ hg diff --git + diff --git a/a b/a + --- a/a + +++ b/a + @@ -1,1 +1,1 @@ + -a + +changed + diff --git a/b b/b + old mode 100644 + new mode 100755 + --- a/b + +++ b/b + @@ -1,1 +1,1 @@ + -b + +changed + + +Edit with extdiff -p: + +Prepare custom diff/edit tool: + + $ cat > 'diff tool.py' << EOT + > #!/usr/bin/env python + > import time + > time.sleep(1) # avoid unchanged-timestamp problems + > file('a/a', 'ab').write('edited\n') + > file('a/b', 'ab').write('edited\n') + > EOT + + $ chmod +x 'diff tool.py' + +# will change to /tmp/extdiff.TMP and populate directories a.TMP and a +# and start tool + $ hg extdiff -p "`pwd`/diff tool.py" + +Diff in working directory, after: + + $ hg diff --git + diff --git a/a b/a + --- a/a + +++ b/a + @@ -1,1 +1,2 @@ + -a + +changed + +edited + diff --git a/b b/b + old mode 100644 + new mode 100755 + --- a/b + +++ b/b + @@ -1,1 +1,2 @@ + -b + +changed + +edited + +Test extdiff with --option: + + $ hg extdiff -p echo -o this -c 1 + this a.8a5febb7f867/a a.34eed99112ab/a + + $ hg falabala -o this -c 1 + diffing this a.8a5febb7f867/a a.34eed99112ab/a + + $ true +