Mercurial > hg
annotate tests/test-patch-offset.t @ 18338:384df4db6520
merge: merge file flags together with file content
The 'x' flag and the 'l' flag are very different. It is usually not a problem
to change the 'x' flag of a normal file independent of the content, but one
does not simply change the type of a file to 'l' independent of the content.
This removes the fmerge function that merged both 'x' and 'l' independent of
content early in the merge process. This correctly introduces some conflicts
instead of silent incorrect merges. 3-way flag merge will now be done in the
resolve process, right next to file content merge. Conflicts can thus be
resolved with (slightly inconvenient) resolve commands like 'resolve f --tool
internal:other'. It thus brings us closer to be able to re-solve manifest merge
after the merge and avoid prompts during merge.
This also removes the "conflicting flags for a - (n)one, e(x)ec or sym(l)ink?"
prompt that nobody could answer and that made it easy to mix symlink targets
and file contents up. Instead it will give a file merge where a sufficiently
clever merge tool can help resolving the issue.
author | Mads Kiilerich <mads@kiilerich.com> |
---|---|
date | Wed, 09 Jan 2013 02:02:45 +0100 |
parents | f2719b387380 |
children | a387b0390082 |
rev | line source |
---|---|
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 .. |