tests/test-diff-subdir.t
author FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
Sat, 21 May 2016 02:48:51 +0900
branchstable
changeset 29180 8c5e880c7e25
parent 24455 16961d43dc89
permissions -rw-r--r--
tests: escape bytes setting MSB in input of grep for portability GNU grep (2.21-2 or later) assumes that input is encoded in LC_CTYPE, and input is binary if it contains byte sequence not valid for that encoding. For example, if locale is configured as C, a byte setting most significant bit (MSB) makes such GNU grep show "Binary file <FILENAME> matches" message instead of matched lines unintentionally. This behavior is recognized as a bug, and fixed in GNU grep 2.25-1 or later. But some distributions are shipped with such buggy version (e.g. Ubuntu xenial, which is used by launchpad buildbot). http://debbugs.gnu.org/cgi/bugreport.cgi?bug=19230 https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=800670 http://packages.ubuntu.com/xenial/grep This causes failure of test-commit-interactive.t, which applies grep on CP932 byte sequence since 1111e84de635. But, explicit setting LC_CTYPE for CP932 might cause another problem, because it can't be assumed that all environment running Mercurial tests allows arbitrary locale setting. To resolve this issue, this patch escapes bytes setting MSB in input of grep. For this purpose: - str.encode('string-escape') isn't useful, because it escapes also control code (less than 0x20), and makes EOL handling complicated - "f --hexdump" isn't useful, because it isn't line-oriented - "sed -n" seems reasonable, but "sed" itself sometimes causes portability issue, too (e.g. 900767dfa80d or afb86ee925bf) This patch is posted with "stable" flag, because 1111e84de635 is on stable branch.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
12140
552ea44c1842 tests: unify test-diff-subdir
Adrian Buehlmann <adrian@cadifra.com>
parents: 3199
diff changeset
     1
  $ hg init
2879
66eff8355168 tests: new test for hg diff of a subdirectory only
Giorgos Keramidas <keramida@ceid.upatras.gr>
parents:
diff changeset
     2
12140
552ea44c1842 tests: unify test-diff-subdir
Adrian Buehlmann <adrian@cadifra.com>
parents: 3199
diff changeset
     3
  $ mkdir alpha
552ea44c1842 tests: unify test-diff-subdir
Adrian Buehlmann <adrian@cadifra.com>
parents: 3199
diff changeset
     4
  $ touch alpha/one
552ea44c1842 tests: unify test-diff-subdir
Adrian Buehlmann <adrian@cadifra.com>
parents: 3199
diff changeset
     5
  $ mkdir beta
552ea44c1842 tests: unify test-diff-subdir
Adrian Buehlmann <adrian@cadifra.com>
parents: 3199
diff changeset
     6
  $ touch beta/two
2879
66eff8355168 tests: new test for hg diff of a subdirectory only
Giorgos Keramidas <keramida@ceid.upatras.gr>
parents:
diff changeset
     7
12140
552ea44c1842 tests: unify test-diff-subdir
Adrian Buehlmann <adrian@cadifra.com>
parents: 3199
diff changeset
     8
  $ hg add alpha/one beta/two
552ea44c1842 tests: unify test-diff-subdir
Adrian Buehlmann <adrian@cadifra.com>
parents: 3199
diff changeset
     9
  $ hg ci -m "start"
2879
66eff8355168 tests: new test for hg diff of a subdirectory only
Giorgos Keramidas <keramida@ceid.upatras.gr>
parents:
diff changeset
    10
12140
552ea44c1842 tests: unify test-diff-subdir
Adrian Buehlmann <adrian@cadifra.com>
parents: 3199
diff changeset
    11
  $ echo 1 > alpha/one
552ea44c1842 tests: unify test-diff-subdir
Adrian Buehlmann <adrian@cadifra.com>
parents: 3199
diff changeset
    12
  $ echo 2 > beta/two
552ea44c1842 tests: unify test-diff-subdir
Adrian Buehlmann <adrian@cadifra.com>
parents: 3199
diff changeset
    13
552ea44c1842 tests: unify test-diff-subdir
Adrian Buehlmann <adrian@cadifra.com>
parents: 3199
diff changeset
    14
everything
2879
66eff8355168 tests: new test for hg diff of a subdirectory only
Giorgos Keramidas <keramida@ceid.upatras.gr>
parents:
diff changeset
    15
12140
552ea44c1842 tests: unify test-diff-subdir
Adrian Buehlmann <adrian@cadifra.com>
parents: 3199
diff changeset
    16
  $ hg diff --nodates
552ea44c1842 tests: unify test-diff-subdir
Adrian Buehlmann <adrian@cadifra.com>
parents: 3199
diff changeset
    17
  diff -r 7d5ef1aea329 alpha/one
552ea44c1842 tests: unify test-diff-subdir
Adrian Buehlmann <adrian@cadifra.com>
parents: 3199
diff changeset
    18
  --- a/alpha/one
552ea44c1842 tests: unify test-diff-subdir
Adrian Buehlmann <adrian@cadifra.com>
parents: 3199
diff changeset
    19
  +++ b/alpha/one
552ea44c1842 tests: unify test-diff-subdir
Adrian Buehlmann <adrian@cadifra.com>
parents: 3199
diff changeset
    20
  @@ -0,0 +1,1 @@
552ea44c1842 tests: unify test-diff-subdir
Adrian Buehlmann <adrian@cadifra.com>
parents: 3199
diff changeset
    21
  +1
552ea44c1842 tests: unify test-diff-subdir
Adrian Buehlmann <adrian@cadifra.com>
parents: 3199
diff changeset
    22
  diff -r 7d5ef1aea329 beta/two
552ea44c1842 tests: unify test-diff-subdir
Adrian Buehlmann <adrian@cadifra.com>
parents: 3199
diff changeset
    23
  --- a/beta/two
552ea44c1842 tests: unify test-diff-subdir
Adrian Buehlmann <adrian@cadifra.com>
parents: 3199
diff changeset
    24
  +++ b/beta/two
552ea44c1842 tests: unify test-diff-subdir
Adrian Buehlmann <adrian@cadifra.com>
parents: 3199
diff changeset
    25
  @@ -0,0 +1,1 @@
552ea44c1842 tests: unify test-diff-subdir
Adrian Buehlmann <adrian@cadifra.com>
parents: 3199
diff changeset
    26
  +2
2879
66eff8355168 tests: new test for hg diff of a subdirectory only
Giorgos Keramidas <keramida@ceid.upatras.gr>
parents:
diff changeset
    27
12140
552ea44c1842 tests: unify test-diff-subdir
Adrian Buehlmann <adrian@cadifra.com>
parents: 3199
diff changeset
    28
beta only
2879
66eff8355168 tests: new test for hg diff of a subdirectory only
Giorgos Keramidas <keramida@ceid.upatras.gr>
parents:
diff changeset
    29
12140
552ea44c1842 tests: unify test-diff-subdir
Adrian Buehlmann <adrian@cadifra.com>
parents: 3199
diff changeset
    30
  $ hg diff --nodates beta
552ea44c1842 tests: unify test-diff-subdir
Adrian Buehlmann <adrian@cadifra.com>
parents: 3199
diff changeset
    31
  diff -r 7d5ef1aea329 beta/two
552ea44c1842 tests: unify test-diff-subdir
Adrian Buehlmann <adrian@cadifra.com>
parents: 3199
diff changeset
    32
  --- a/beta/two
552ea44c1842 tests: unify test-diff-subdir
Adrian Buehlmann <adrian@cadifra.com>
parents: 3199
diff changeset
    33
  +++ b/beta/two
552ea44c1842 tests: unify test-diff-subdir
Adrian Buehlmann <adrian@cadifra.com>
parents: 3199
diff changeset
    34
  @@ -0,0 +1,1 @@
552ea44c1842 tests: unify test-diff-subdir
Adrian Buehlmann <adrian@cadifra.com>
parents: 3199
diff changeset
    35
  +2
552ea44c1842 tests: unify test-diff-subdir
Adrian Buehlmann <adrian@cadifra.com>
parents: 3199
diff changeset
    36
552ea44c1842 tests: unify test-diff-subdir
Adrian Buehlmann <adrian@cadifra.com>
parents: 3199
diff changeset
    37
inside beta
2879
66eff8355168 tests: new test for hg diff of a subdirectory only
Giorgos Keramidas <keramida@ceid.upatras.gr>
parents:
diff changeset
    38
12140
552ea44c1842 tests: unify test-diff-subdir
Adrian Buehlmann <adrian@cadifra.com>
parents: 3199
diff changeset
    39
  $ cd beta
552ea44c1842 tests: unify test-diff-subdir
Adrian Buehlmann <adrian@cadifra.com>
parents: 3199
diff changeset
    40
  $ hg diff --nodates .
552ea44c1842 tests: unify test-diff-subdir
Adrian Buehlmann <adrian@cadifra.com>
parents: 3199
diff changeset
    41
  diff -r 7d5ef1aea329 beta/two
552ea44c1842 tests: unify test-diff-subdir
Adrian Buehlmann <adrian@cadifra.com>
parents: 3199
diff changeset
    42
  --- a/beta/two
552ea44c1842 tests: unify test-diff-subdir
Adrian Buehlmann <adrian@cadifra.com>
parents: 3199
diff changeset
    43
  +++ b/beta/two
552ea44c1842 tests: unify test-diff-subdir
Adrian Buehlmann <adrian@cadifra.com>
parents: 3199
diff changeset
    44
  @@ -0,0 +1,1 @@
552ea44c1842 tests: unify test-diff-subdir
Adrian Buehlmann <adrian@cadifra.com>
parents: 3199
diff changeset
    45
  +2
552ea44c1842 tests: unify test-diff-subdir
Adrian Buehlmann <adrian@cadifra.com>
parents: 3199
diff changeset
    46
24432
e22248f6d257 commands.diff: add support for diffs relative to a subdirectory
Siddharth Agarwal <sid0@fb.com>
parents: 16913
diff changeset
    47
relative to beta
e22248f6d257 commands.diff: add support for diffs relative to a subdirectory
Siddharth Agarwal <sid0@fb.com>
parents: 16913
diff changeset
    48
16913
f2719b387380 tests: add missing trailing 'cd ..'
Mads Kiilerich <mads@kiilerich.com>
parents: 12140
diff changeset
    49
  $ cd ..
24455
16961d43dc89 diff: rename --relative option to --root
Sean Farley <sean@farley.io>
parents: 24432
diff changeset
    50
  $ hg diff --nodates --root beta
24432
e22248f6d257 commands.diff: add support for diffs relative to a subdirectory
Siddharth Agarwal <sid0@fb.com>
parents: 16913
diff changeset
    51
  diff -r 7d5ef1aea329 two
e22248f6d257 commands.diff: add support for diffs relative to a subdirectory
Siddharth Agarwal <sid0@fb.com>
parents: 16913
diff changeset
    52
  --- a/two
e22248f6d257 commands.diff: add support for diffs relative to a subdirectory
Siddharth Agarwal <sid0@fb.com>
parents: 16913
diff changeset
    53
  +++ b/two
e22248f6d257 commands.diff: add support for diffs relative to a subdirectory
Siddharth Agarwal <sid0@fb.com>
parents: 16913
diff changeset
    54
  @@ -0,0 +1,1 @@
e22248f6d257 commands.diff: add support for diffs relative to a subdirectory
Siddharth Agarwal <sid0@fb.com>
parents: 16913
diff changeset
    55
  +2
e22248f6d257 commands.diff: add support for diffs relative to a subdirectory
Siddharth Agarwal <sid0@fb.com>
parents: 16913
diff changeset
    56
e22248f6d257 commands.diff: add support for diffs relative to a subdirectory
Siddharth Agarwal <sid0@fb.com>
parents: 16913
diff changeset
    57
inside beta
e22248f6d257 commands.diff: add support for diffs relative to a subdirectory
Siddharth Agarwal <sid0@fb.com>
parents: 16913
diff changeset
    58
e22248f6d257 commands.diff: add support for diffs relative to a subdirectory
Siddharth Agarwal <sid0@fb.com>
parents: 16913
diff changeset
    59
  $ cd beta
24455
16961d43dc89 diff: rename --relative option to --root
Sean Farley <sean@farley.io>
parents: 24432
diff changeset
    60
  $ hg diff --nodates --root .
24432
e22248f6d257 commands.diff: add support for diffs relative to a subdirectory
Siddharth Agarwal <sid0@fb.com>
parents: 16913
diff changeset
    61
  diff -r 7d5ef1aea329 two
e22248f6d257 commands.diff: add support for diffs relative to a subdirectory
Siddharth Agarwal <sid0@fb.com>
parents: 16913
diff changeset
    62
  --- a/two
e22248f6d257 commands.diff: add support for diffs relative to a subdirectory
Siddharth Agarwal <sid0@fb.com>
parents: 16913
diff changeset
    63
  +++ b/two
e22248f6d257 commands.diff: add support for diffs relative to a subdirectory
Siddharth Agarwal <sid0@fb.com>
parents: 16913
diff changeset
    64
  @@ -0,0 +1,1 @@
e22248f6d257 commands.diff: add support for diffs relative to a subdirectory
Siddharth Agarwal <sid0@fb.com>
parents: 16913
diff changeset
    65
  +2
e22248f6d257 commands.diff: add support for diffs relative to a subdirectory
Siddharth Agarwal <sid0@fb.com>
parents: 16913
diff changeset
    66
e22248f6d257 commands.diff: add support for diffs relative to a subdirectory
Siddharth Agarwal <sid0@fb.com>
parents: 16913
diff changeset
    67
  $ cd ..