tests/test-patch-offset.t
author FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
Tue, 01 Oct 2013 00:35:07 +0900
branchstable
changeset 19849 e7fa36d2ad3a
parent 16913 f2719b387380
child 23749 a387b0390082
permissions -rw-r--r--
rebase: catch RepoLookupError at restoring rebase state for summary Before this patch, "hg summary" may fail, when there is inconsistent rebase state: for example, the root of rebase destination revisions recorded in rebase state file is already stripped manually. Mercurial earlier than 2.7 allows users to do anything other than starting new rebase, even though current rebase is not finished or aborted yet. So, such inconsistent rebase states may be left and forgotten in repositories. This patch catches RepoLookupError at restoring rebase state for summary hook, and treat such state as "broken".
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
10135
9a4034b630c4 patch: better handling of sequence of offset patch hunks (issue1941)
Greg Onufer <gonufer@jazzhaiku.com>
parents:
diff changeset
     1
12477
e68cd3a90599 tests: unify test-patch-offset
Matt Mackall <mpm@selenic.com>
parents: 10265
diff changeset
     2
  $ cat > writepatterns.py <<EOF
e68cd3a90599 tests: unify test-patch-offset
Matt Mackall <mpm@selenic.com>
parents: 10265
diff changeset
     3
  > import sys
e68cd3a90599 tests: unify test-patch-offset
Matt Mackall <mpm@selenic.com>
parents: 10265
diff changeset
     4
  > 
e68cd3a90599 tests: unify test-patch-offset
Matt Mackall <mpm@selenic.com>
parents: 10265
diff changeset
     5
  > path = sys.argv[1]
e68cd3a90599 tests: unify test-patch-offset
Matt Mackall <mpm@selenic.com>
parents: 10265
diff changeset
     6
  > patterns = sys.argv[2:]
e68cd3a90599 tests: unify test-patch-offset
Matt Mackall <mpm@selenic.com>
parents: 10265
diff changeset
     7
  > 
e68cd3a90599 tests: unify test-patch-offset
Matt Mackall <mpm@selenic.com>
parents: 10265
diff changeset
     8
  > fp = file(path, 'wb')
e68cd3a90599 tests: unify test-patch-offset
Matt Mackall <mpm@selenic.com>
parents: 10265
diff changeset
     9
  > for pattern in patterns:
e68cd3a90599 tests: unify test-patch-offset
Matt Mackall <mpm@selenic.com>
parents: 10265
diff changeset
    10
  >     count = int(pattern[0:-1])
e68cd3a90599 tests: unify test-patch-offset
Matt Mackall <mpm@selenic.com>
parents: 10265
diff changeset
    11
  >     char = pattern[-1] + '\n'
e68cd3a90599 tests: unify test-patch-offset
Matt Mackall <mpm@selenic.com>
parents: 10265
diff changeset
    12
  >     fp.write(char*count)
e68cd3a90599 tests: unify test-patch-offset
Matt Mackall <mpm@selenic.com>
parents: 10265
diff changeset
    13
  > fp.close()
e68cd3a90599 tests: unify test-patch-offset
Matt Mackall <mpm@selenic.com>
parents: 10265
diff changeset
    14
  > EOF
10135
9a4034b630c4 patch: better handling of sequence of offset patch hunks (issue1941)
Greg Onufer <gonufer@jazzhaiku.com>
parents:
diff changeset
    15
12477
e68cd3a90599 tests: unify test-patch-offset
Matt Mackall <mpm@selenic.com>
parents: 10265
diff changeset
    16
prepare repo
10135
9a4034b630c4 patch: better handling of sequence of offset patch hunks (issue1941)
Greg Onufer <gonufer@jazzhaiku.com>
parents:
diff changeset
    17
12477
e68cd3a90599 tests: unify test-patch-offset
Matt Mackall <mpm@selenic.com>
parents: 10265
diff changeset
    18
  $ hg init a
e68cd3a90599 tests: unify test-patch-offset
Matt Mackall <mpm@selenic.com>
parents: 10265
diff changeset
    19
  $ cd a
e68cd3a90599 tests: unify test-patch-offset
Matt Mackall <mpm@selenic.com>
parents: 10265
diff changeset
    20
e68cd3a90599 tests: unify test-patch-offset
Matt Mackall <mpm@selenic.com>
parents: 10265
diff changeset
    21
These initial lines of Xs were not in the original file used to generate
e68cd3a90599 tests: unify test-patch-offset
Matt Mackall <mpm@selenic.com>
parents: 10265
diff changeset
    22
the patch.  So all the patch hunks need to be applied to a constant offset
e68cd3a90599 tests: unify test-patch-offset
Matt Mackall <mpm@selenic.com>
parents: 10265
diff changeset
    23
within this file.  If the offset isn't tracked then the hunks can be
e68cd3a90599 tests: unify test-patch-offset
Matt Mackall <mpm@selenic.com>
parents: 10265
diff changeset
    24
applied to the wrong lines of this file.
10135
9a4034b630c4 patch: better handling of sequence of offset patch hunks (issue1941)
Greg Onufer <gonufer@jazzhaiku.com>
parents:
diff changeset
    25
12477
e68cd3a90599 tests: unify test-patch-offset
Matt Mackall <mpm@selenic.com>
parents: 10265
diff changeset
    26
  $ python ../writepatterns.py a 34X 10A 1B 10A 1C 10A 1B 10A 1D 10A 1B 10A 1E 10A 1B 10A
e68cd3a90599 tests: unify test-patch-offset
Matt Mackall <mpm@selenic.com>
parents: 10265
diff changeset
    27
  $ hg commit -Am adda
e68cd3a90599 tests: unify test-patch-offset
Matt Mackall <mpm@selenic.com>
parents: 10265
diff changeset
    28
  adding a
10135
9a4034b630c4 patch: better handling of sequence of offset patch hunks (issue1941)
Greg Onufer <gonufer@jazzhaiku.com>
parents:
diff changeset
    29
12477
e68cd3a90599 tests: unify test-patch-offset
Matt Mackall <mpm@selenic.com>
parents: 10265
diff changeset
    30
This is a cleaner patch generated via diff
e68cd3a90599 tests: unify test-patch-offset
Matt Mackall <mpm@selenic.com>
parents: 10265
diff changeset
    31
In this case it reproduces the problem when
e68cd3a90599 tests: unify test-patch-offset
Matt Mackall <mpm@selenic.com>
parents: 10265
diff changeset
    32
the output of hg export does not
e68cd3a90599 tests: unify test-patch-offset
Matt Mackall <mpm@selenic.com>
parents: 10265
diff changeset
    33
import patch
10135
9a4034b630c4 patch: better handling of sequence of offset patch hunks (issue1941)
Greg Onufer <gonufer@jazzhaiku.com>
parents:
diff changeset
    34
12477
e68cd3a90599 tests: unify test-patch-offset
Matt Mackall <mpm@selenic.com>
parents: 10265
diff changeset
    35
  $ hg import -v -m 'b' -d '2 0' - <<EOF
e68cd3a90599 tests: unify test-patch-offset
Matt Mackall <mpm@selenic.com>
parents: 10265
diff changeset
    36
  > --- a/a	2009-12-08 19:26:17.000000000 -0800
e68cd3a90599 tests: unify test-patch-offset
Matt Mackall <mpm@selenic.com>
parents: 10265
diff changeset
    37
  > +++ b/a	2009-12-08 19:26:17.000000000 -0800
e68cd3a90599 tests: unify test-patch-offset
Matt Mackall <mpm@selenic.com>
parents: 10265
diff changeset
    38
  > @@ -9,7 +9,7 @@
e68cd3a90599 tests: unify test-patch-offset
Matt Mackall <mpm@selenic.com>
parents: 10265
diff changeset
    39
  >  A
e68cd3a90599 tests: unify test-patch-offset
Matt Mackall <mpm@selenic.com>
parents: 10265
diff changeset
    40
  >  A
e68cd3a90599 tests: unify test-patch-offset
Matt Mackall <mpm@selenic.com>
parents: 10265
diff changeset
    41
  >  B
e68cd3a90599 tests: unify test-patch-offset
Matt Mackall <mpm@selenic.com>
parents: 10265
diff changeset
    42
  > -A
e68cd3a90599 tests: unify test-patch-offset
Matt Mackall <mpm@selenic.com>
parents: 10265
diff changeset
    43
  > +a
e68cd3a90599 tests: unify test-patch-offset
Matt Mackall <mpm@selenic.com>
parents: 10265
diff changeset
    44
  >  A
e68cd3a90599 tests: unify test-patch-offset
Matt Mackall <mpm@selenic.com>
parents: 10265
diff changeset
    45
  >  A
e68cd3a90599 tests: unify test-patch-offset
Matt Mackall <mpm@selenic.com>
parents: 10265
diff changeset
    46
  >  A
e68cd3a90599 tests: unify test-patch-offset
Matt Mackall <mpm@selenic.com>
parents: 10265
diff changeset
    47
  > @@ -53,7 +53,7 @@
e68cd3a90599 tests: unify test-patch-offset
Matt Mackall <mpm@selenic.com>
parents: 10265
diff changeset
    48
  >  A
e68cd3a90599 tests: unify test-patch-offset
Matt Mackall <mpm@selenic.com>
parents: 10265
diff changeset
    49
  >  A
e68cd3a90599 tests: unify test-patch-offset
Matt Mackall <mpm@selenic.com>
parents: 10265
diff changeset
    50
  >  B
e68cd3a90599 tests: unify test-patch-offset
Matt Mackall <mpm@selenic.com>
parents: 10265
diff changeset
    51
  > -A
e68cd3a90599 tests: unify test-patch-offset
Matt Mackall <mpm@selenic.com>
parents: 10265
diff changeset
    52
  > +a
e68cd3a90599 tests: unify test-patch-offset
Matt Mackall <mpm@selenic.com>
parents: 10265
diff changeset
    53
  >  A
e68cd3a90599 tests: unify test-patch-offset
Matt Mackall <mpm@selenic.com>
parents: 10265
diff changeset
    54
  >  A
e68cd3a90599 tests: unify test-patch-offset
Matt Mackall <mpm@selenic.com>
parents: 10265
diff changeset
    55
  >  A
e68cd3a90599 tests: unify test-patch-offset
Matt Mackall <mpm@selenic.com>
parents: 10265
diff changeset
    56
  > @@ -75,7 +75,7 @@
e68cd3a90599 tests: unify test-patch-offset
Matt Mackall <mpm@selenic.com>
parents: 10265
diff changeset
    57
  >  A
e68cd3a90599 tests: unify test-patch-offset
Matt Mackall <mpm@selenic.com>
parents: 10265
diff changeset
    58
  >  A
e68cd3a90599 tests: unify test-patch-offset
Matt Mackall <mpm@selenic.com>
parents: 10265
diff changeset
    59
  >  B
e68cd3a90599 tests: unify test-patch-offset
Matt Mackall <mpm@selenic.com>
parents: 10265
diff changeset
    60
  > -A
e68cd3a90599 tests: unify test-patch-offset
Matt Mackall <mpm@selenic.com>
parents: 10265
diff changeset
    61
  > +a
e68cd3a90599 tests: unify test-patch-offset
Matt Mackall <mpm@selenic.com>
parents: 10265
diff changeset
    62
  >  A
e68cd3a90599 tests: unify test-patch-offset
Matt Mackall <mpm@selenic.com>
parents: 10265
diff changeset
    63
  >  A
e68cd3a90599 tests: unify test-patch-offset
Matt Mackall <mpm@selenic.com>
parents: 10265
diff changeset
    64
  >  A
e68cd3a90599 tests: unify test-patch-offset
Matt Mackall <mpm@selenic.com>
parents: 10265
diff changeset
    65
  > EOF
e68cd3a90599 tests: unify test-patch-offset
Matt Mackall <mpm@selenic.com>
parents: 10265
diff changeset
    66
  applying patch from stdin
e68cd3a90599 tests: unify test-patch-offset
Matt Mackall <mpm@selenic.com>
parents: 10265
diff changeset
    67
  patching file a
e68cd3a90599 tests: unify test-patch-offset
Matt Mackall <mpm@selenic.com>
parents: 10265
diff changeset
    68
  Hunk #1 succeeded at 43 (offset 34 lines).
e68cd3a90599 tests: unify test-patch-offset
Matt Mackall <mpm@selenic.com>
parents: 10265
diff changeset
    69
  Hunk #2 succeeded at 87 (offset 34 lines).
e68cd3a90599 tests: unify test-patch-offset
Matt Mackall <mpm@selenic.com>
parents: 10265
diff changeset
    70
  Hunk #3 succeeded at 109 (offset 34 lines).
e68cd3a90599 tests: unify test-patch-offset
Matt Mackall <mpm@selenic.com>
parents: 10265
diff changeset
    71
  a
15194
0705f2ac79d6 import: simplify status reporting logic (and make it more I18N-friendly)
Greg Ward <greg@gerg.ca>
parents: 12477
diff changeset
    72
  created 189885cecb41
10135
9a4034b630c4 patch: better handling of sequence of offset patch hunks (issue1941)
Greg Onufer <gonufer@jazzhaiku.com>
parents:
diff changeset
    73
12477
e68cd3a90599 tests: unify test-patch-offset
Matt Mackall <mpm@selenic.com>
parents: 10265
diff changeset
    74
compare imported changes against reference file
10135
9a4034b630c4 patch: better handling of sequence of offset patch hunks (issue1941)
Greg Onufer <gonufer@jazzhaiku.com>
parents:
diff changeset
    75
12477
e68cd3a90599 tests: unify test-patch-offset
Matt Mackall <mpm@selenic.com>
parents: 10265
diff changeset
    76
  $ python ../writepatterns.py aref 34X 10A 1B 1a 9A 1C 10A 1B 10A 1D 10A 1B 1a 9A 1E 10A 1B 1a 9A
e68cd3a90599 tests: unify test-patch-offset
Matt Mackall <mpm@selenic.com>
parents: 10265
diff changeset
    77
  $ diff aref a
16913
f2719b387380 tests: add missing trailing 'cd ..'
Mads Kiilerich <mads@kiilerich.com>
parents: 15194
diff changeset
    78
f2719b387380 tests: add missing trailing 'cd ..'
Mads Kiilerich <mads@kiilerich.com>
parents: 15194
diff changeset
    79
  $ cd ..