Mercurial > hg
annotate tests/pdiff @ 28103:7d852bb47b0a
merge: give priority to "not at head" failures for bare 'hg merge'
We refuse to pick a destination for a bare 'hg merge' if the working copy is not
at head. This is meant to prevent strange merge from user who forget to update.
(Moreover, such merge does not reduce actually the number of heads)
However, we were doing that as the last possible failure type. So user were
recommended to merge with an explicit head (from this bad location) if the
branch had too many heads.
We now make "not on branch heads" class of failure the first things to check
and fail on. The one test that change was actually trying to check for these
failure (and did not). The new test output is correct.
author | Pierre-Yves David <pierre-yves.david@fb.com> |
---|---|
date | Mon, 08 Feb 2016 14:55:58 +0100 |
parents | b59ef0c21405 |
children | 869e65e68aee |
rev | line source |
---|---|
28052
b59ef0c21405
tests: use portable diff script via extdiff extension
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
diff
changeset
|
1 #!/bin/sh |
b59ef0c21405
tests: use portable diff script via extdiff extension
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
diff
changeset
|
2 |
b59ef0c21405
tests: use portable diff script via extdiff extension
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
diff
changeset
|
3 # Script to get stable diff output on any platform. |
b59ef0c21405
tests: use portable diff script via extdiff extension
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
diff
changeset
|
4 # |
b59ef0c21405
tests: use portable diff script via extdiff extension
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
diff
changeset
|
5 # Output of this script is almost equivalent to GNU diff with "-Nru". |
b59ef0c21405
tests: use portable diff script via extdiff extension
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
diff
changeset
|
6 # |
b59ef0c21405
tests: use portable diff script via extdiff extension
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
diff
changeset
|
7 # Use this script as "hg pdiff" via extdiff extension with preparation |
b59ef0c21405
tests: use portable diff script via extdiff extension
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
diff
changeset
|
8 # below in test scripts: |
b59ef0c21405
tests: use portable diff script via extdiff extension
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
diff
changeset
|
9 # |
b59ef0c21405
tests: use portable diff script via extdiff extension
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
diff
changeset
|
10 # $ cat >> $HGRCPATH <<EOF |
b59ef0c21405
tests: use portable diff script via extdiff extension
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
diff
changeset
|
11 # > [extdiff] |
b59ef0c21405
tests: use portable diff script via extdiff extension
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
diff
changeset
|
12 # > pdiff = sh "$RUNTESTDIR/pdiff" |
b59ef0c21405
tests: use portable diff script via extdiff extension
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
diff
changeset
|
13 # > EOF |
b59ef0c21405
tests: use portable diff script via extdiff extension
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
diff
changeset
|
14 |
b59ef0c21405
tests: use portable diff script via extdiff extension
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
diff
changeset
|
15 filediff(){ |
b59ef0c21405
tests: use portable diff script via extdiff extension
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
diff
changeset
|
16 # USAGE: filediff file1 file2 [header] |
b59ef0c21405
tests: use portable diff script via extdiff extension
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
diff
changeset
|
17 |
b59ef0c21405
tests: use portable diff script via extdiff extension
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
diff
changeset
|
18 # compare with /dev/null if file doesn't exist (as "-N" option) |
b59ef0c21405
tests: use portable diff script via extdiff extension
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
diff
changeset
|
19 file1="$1" |
b59ef0c21405
tests: use portable diff script via extdiff extension
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
diff
changeset
|
20 if test ! -f "$file1"; then |
b59ef0c21405
tests: use portable diff script via extdiff extension
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
diff
changeset
|
21 file1=/dev/null |
b59ef0c21405
tests: use portable diff script via extdiff extension
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
diff
changeset
|
22 fi |
b59ef0c21405
tests: use portable diff script via extdiff extension
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
diff
changeset
|
23 file2="$2" |
b59ef0c21405
tests: use portable diff script via extdiff extension
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
diff
changeset
|
24 if test ! -f "$file2"; then |
b59ef0c21405
tests: use portable diff script via extdiff extension
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
diff
changeset
|
25 file2=/dev/null |
b59ef0c21405
tests: use portable diff script via extdiff extension
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
diff
changeset
|
26 fi |
b59ef0c21405
tests: use portable diff script via extdiff extension
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
diff
changeset
|
27 |
b59ef0c21405
tests: use portable diff script via extdiff extension
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
diff
changeset
|
28 if cmp -s "$file1" "$file2"; then |
b59ef0c21405
tests: use portable diff script via extdiff extension
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
diff
changeset
|
29 # Return immediately, because comparison isn't needed. This |
b59ef0c21405
tests: use portable diff script via extdiff extension
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
diff
changeset
|
30 # also avoids redundant message of diff like "No differences |
b59ef0c21405
tests: use portable diff script via extdiff extension
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
diff
changeset
|
31 # encountered" (on Solaris) |
b59ef0c21405
tests: use portable diff script via extdiff extension
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
diff
changeset
|
32 return |
b59ef0c21405
tests: use portable diff script via extdiff extension
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
diff
changeset
|
33 fi |
b59ef0c21405
tests: use portable diff script via extdiff extension
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
diff
changeset
|
34 |
b59ef0c21405
tests: use portable diff script via extdiff extension
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
diff
changeset
|
35 if test -n "$3"; then |
b59ef0c21405
tests: use portable diff script via extdiff extension
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
diff
changeset
|
36 # show header only in recursive case |
b59ef0c21405
tests: use portable diff script via extdiff extension
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
diff
changeset
|
37 echo "$3" |
b59ef0c21405
tests: use portable diff script via extdiff extension
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
diff
changeset
|
38 fi |
b59ef0c21405
tests: use portable diff script via extdiff extension
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
diff
changeset
|
39 |
b59ef0c21405
tests: use portable diff script via extdiff extension
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
diff
changeset
|
40 # replace "/dev/null" by corresponded filename (as "-N" option) |
b59ef0c21405
tests: use portable diff script via extdiff extension
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
diff
changeset
|
41 diff -u "$file1" "$file2" | |
b59ef0c21405
tests: use portable diff script via extdiff extension
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
diff
changeset
|
42 sed "s@^--- /dev/null\(.*\)\$@--- $1\1@" | |
b59ef0c21405
tests: use portable diff script via extdiff extension
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
diff
changeset
|
43 sed "s@^\+\+\+ /dev/null\(.*\)\$@+++ $2\1@" |
b59ef0c21405
tests: use portable diff script via extdiff extension
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
diff
changeset
|
44 } |
b59ef0c21405
tests: use portable diff script via extdiff extension
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
diff
changeset
|
45 |
b59ef0c21405
tests: use portable diff script via extdiff extension
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
diff
changeset
|
46 if test -d "$1" -o -d "$2"; then |
b59ef0c21405
tests: use portable diff script via extdiff extension
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
diff
changeset
|
47 # ensure comparison in dictionary order |
b59ef0c21405
tests: use portable diff script via extdiff extension
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
diff
changeset
|
48 ( |
b59ef0c21405
tests: use portable diff script via extdiff extension
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
diff
changeset
|
49 if test -d "$1"; then (cd "$1" && find . -type f); fi |
b59ef0c21405
tests: use portable diff script via extdiff extension
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
diff
changeset
|
50 if test -d "$2"; then (cd "$2" && find . -type f); fi |
b59ef0c21405
tests: use portable diff script via extdiff extension
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
diff
changeset
|
51 ) | |
b59ef0c21405
tests: use portable diff script via extdiff extension
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
diff
changeset
|
52 sed 's@^\./@@g' | sort | uniq | |
b59ef0c21405
tests: use portable diff script via extdiff extension
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
diff
changeset
|
53 while read file; do |
b59ef0c21405
tests: use portable diff script via extdiff extension
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
diff
changeset
|
54 filediff "$1/$file" "$2/$file" "diff -Nru $1/$file $2/$file" |
b59ef0c21405
tests: use portable diff script via extdiff extension
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
diff
changeset
|
55 done |
b59ef0c21405
tests: use portable diff script via extdiff extension
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
diff
changeset
|
56 else |
b59ef0c21405
tests: use portable diff script via extdiff extension
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
diff
changeset
|
57 filediff "$1" "$2" |
b59ef0c21405
tests: use portable diff script via extdiff extension
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
diff
changeset
|
58 fi |