Show More
@@ -107,8 +107,11 b' def _picktool(repo, ui, path, binary, sy' | |||||
107 | if check(t, None, symlink, binary): |
|
107 | if check(t, None, symlink, binary): | |
108 | toolpath = _findtool(ui, t) |
|
108 | toolpath = _findtool(ui, t) | |
109 | return (t, '"' + toolpath + '"') |
|
109 | return (t, '"' + toolpath + '"') | |
110 | # internal merge as last resort |
|
110 | ||
111 | return (not (symlink or binary) and "internal:merge" or None, None) |
|
111 | # internal merge or prompt as last resort | |
|
112 | if symlink or binary: | |||
|
113 | return "internal:prompt", None | |||
|
114 | return "internal:merge", None | |||
112 |
|
115 | |||
113 | def _eoltype(data): |
|
116 | def _eoltype(data): | |
114 | "Guess the EOL type of a file" |
|
117 | "Guess the EOL type of a file" |
@@ -170,9 +170,10 b' def manifestmerge(repo, p1, p2, pa, over' | |||||
170 | if m and m != a: # changed from a to m |
|
170 | if m and m != a: # changed from a to m | |
171 | return m |
|
171 | return m | |
172 | if n and n != a: # changed from a to n |
|
172 | if n and n != a: # changed from a to n | |
173 | if n == 'l' or a == 'l': |
|
173 | if (n == 'l' or a == 'l') and m1[f] != ma[f]: | |
174 |
# can't automatically merge symlink flag |
|
174 | # can't automatically merge symlink flag when there | |
175 | # filemerge take care of it |
|
175 | # are file-level conflicts here, let filemerge take | |
|
176 | # care of it | |||
176 | return m |
|
177 | return m | |
177 | return n |
|
178 | return n | |
178 | return '' # flag was cleared |
|
179 | return '' # flag was cleared |
@@ -70,3 +70,39 b' Symlink is other parent, executable is l' | |||||
70 | > fi |
|
70 | > fi | |
71 | a has no flags (default for conflicts) |
|
71 | a has no flags (default for conflicts) | |
72 |
|
72 | |||
|
73 | Update to link without local change should get us a symlink (issue3316): | |||
|
74 | ||||
|
75 | $ hg up -C 0 | |||
|
76 | $ hg up | |||
|
77 | $ hg st | |||
|
78 | ||||
|
79 | Update to link with local change should cause a merge prompt (issue3200): | |||
|
80 | ||||
|
81 | $ hg up -C 0 | |||
|
82 | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved | |||
|
83 | $ echo data > a | |||
|
84 | $ HGMERGE= hg up -y --debug | |||
|
85 | searching for copies back to rev 2 | |||
|
86 | resolving manifests | |||
|
87 | overwrite: False, partial: False | |||
|
88 | ancestor: c334dc3be0da, local: c334dc3be0da+, remote: 521a1e40188f | |||
|
89 | a: versions differ -> m | |||
|
90 | preserving a for resolve of a | |||
|
91 | updating: a 1/1 files (100.00%) | |||
|
92 | couldn't find merge tool hgmerge | |||
|
93 | picked tool 'internal:prompt' for a (binary False symlink True) | |||
|
94 | no tool found to merge a | |||
|
95 | keep (l)ocal or take (o)ther? l | |||
|
96 | 0 files updated, 1 files merged, 0 files removed, 0 files unresolved | |||
|
97 | $ hg diff --git | |||
|
98 | diff --git a/a b/a | |||
|
99 | old mode 120000 | |||
|
100 | new mode 100644 | |||
|
101 | --- a/a | |||
|
102 | +++ b/a | |||
|
103 | @@ -1,1 +1,1 @@ | |||
|
104 | -symlink | |||
|
105 | \ No newline at end of file | |||
|
106 | +data | |||
|
107 | ||||
|
108 |
General Comments 0
You need to be logged in to leave comments.
Login now