Show More
@@ -813,40 +813,6 b' def debuginstall(ui):' | |||||
813 | os.unlink(fa) |
|
813 | os.unlink(fa) | |
814 | os.unlink(fd) |
|
814 | os.unlink(fd) | |
815 |
|
815 | |||
816 | # merge helper |
|
|||
817 | ui.status(_("Checking merge helper...\n")) |
|
|||
818 | cmd = (os.environ.get("HGMERGE") or ui.config("ui", "merge") |
|
|||
819 | or "hgmerge") |
|
|||
820 | cmdpath = util.find_exe(cmd) or util.find_exe(cmd.split()[0]) |
|
|||
821 | if not cmdpath: |
|
|||
822 | if cmd == 'hgmerge': |
|
|||
823 | ui.write(_(" No merge helper set and can't find default" |
|
|||
824 | " hgmerge script in PATH\n")) |
|
|||
825 | ui.write(_(" (specify a merge helper in your .hgrc file)\n")) |
|
|||
826 | else: |
|
|||
827 | ui.write(_(" Can't find merge helper '%s' in PATH\n") % cmd) |
|
|||
828 | ui.write(_(" (specify a merge helper in your .hgrc file)\n")) |
|
|||
829 | problems += 1 |
|
|||
830 | else: |
|
|||
831 | # actually attempt a patch here |
|
|||
832 | fa = writetemp("1\n2\n3\n4\n") |
|
|||
833 | fl = writetemp("1\n2\n3\ninsert\n4\n") |
|
|||
834 | fr = writetemp("begin\n1\n2\n3\n4\n") |
|
|||
835 | r = util.system('%s "%s" "%s" "%s"' % (cmd, fl, fa, fr)) |
|
|||
836 | if r: |
|
|||
837 | ui.write(_(" Got unexpected merge error %d!\n") % r) |
|
|||
838 | problems += 1 |
|
|||
839 | m = file(fl).read() |
|
|||
840 | if m != "begin\n1\n2\n3\ninsert\n4\n": |
|
|||
841 | ui.write(_(" Got unexpected merge results!\n")) |
|
|||
842 | ui.write(_(" (your merge helper may have the" |
|
|||
843 | " wrong argument order)\n")) |
|
|||
844 | ui.write(_(" Result: %r\n") % m) |
|
|||
845 | problems += 1 |
|
|||
846 | os.unlink(fa) |
|
|||
847 | os.unlink(fl) |
|
|||
848 | os.unlink(fr) |
|
|||
849 |
|
||||
850 | # editor |
|
816 | # editor | |
851 | ui.status(_("Checking commit editor...\n")) |
|
817 | ui.status(_("Checking commit editor...\n")) | |
852 | editor = ui.geteditor() |
|
818 | editor = ui.geteditor() |
@@ -7,7 +7,57 b'' | |||||
7 |
|
7 | |||
8 | from node import * |
|
8 | from node import * | |
9 | from i18n import _ |
|
9 | from i18n import _ | |
10 | import util, os, tempfile, context |
|
10 | import util, os, tempfile, context, simplemerge, re | |
|
11 | ||||
|
12 | def _toolstr(ui, tool, part, default=None): | |||
|
13 | return ui.config("merge-tools", tool + "." + part, default) | |||
|
14 | ||||
|
15 | def _toolbool(ui, tool, part, default=False): | |||
|
16 | return ui.configbool("merge-tools", tool + "." + part, default) | |||
|
17 | ||||
|
18 | def _findtool(ui, tool): | |||
|
19 | return util.find_exe(_toolstr(ui, tool, "executable", tool)) | |||
|
20 | ||||
|
21 | def _picktool(repo, ui, path, binary, symlink): | |||
|
22 | def check(tool, pat, symlink, binary): | |||
|
23 | tmsg = tool | |||
|
24 | if pat: | |||
|
25 | tmsg += " specified for " + pat | |||
|
26 | if pat and not _findtool(ui, tool): # skip search if not matching | |||
|
27 | ui.warn(_("couldn't find merge tool %s\n") % tmsg) | |||
|
28 | elif symlink and not _toolbool(ui, tool, "symlink"): | |||
|
29 | ui.warn(_("tool %s can't handle symlinks\n") % tmsg) | |||
|
30 | elif binary and not _toolbool(ui, tool, "binary"): | |||
|
31 | ui.warn(_("tool %s can't handle binary\n") % tmsg) | |||
|
32 | else: | |||
|
33 | return True | |||
|
34 | return False | |||
|
35 | ||||
|
36 | # HGMERGE takes precedence | |||
|
37 | if os.environ.get("HGMERGE"): | |||
|
38 | return os.environ.get("HGMERGE") | |||
|
39 | ||||
|
40 | # then patterns | |||
|
41 | for pattern, tool in ui.configitems("merge-patterns"): | |||
|
42 | mf = util.matcher(repo.root, "", [pat], [], [])[1] | |||
|
43 | if mf(path) and check(tool, pat, symlink, False): | |||
|
44 | return tool | |||
|
45 | ||||
|
46 | # then merge tools | |||
|
47 | tools = {} | |||
|
48 | for k,v in ui.configitems("merge-tools"): | |||
|
49 | t = k.split('.')[0] | |||
|
50 | if t not in tools: | |||
|
51 | tools[t] = int(_toolstr(ui, t, "priority", "0")) | |||
|
52 | tools = [(-p,t) for t,p in tools.items()] | |||
|
53 | tools.sort() | |||
|
54 | if ui.config("ui", "merge"): | |||
|
55 | tools.insert(0, (None, ui.config("ui", "merge"))) # highest priority | |||
|
56 | tools.append((None, "hgmerge")) # the old default, if found | |||
|
57 | tools.append((None, "internal:merge")) # internal merge as last resort | |||
|
58 | for p,t in tools: | |||
|
59 | if _findtool(ui, t) and check(t, None, symlink, binary): | |||
|
60 | return t | |||
11 |
|
61 | |||
12 | def filemerge(repo, fw, fd, fo, wctx, mctx): |
|
62 | def filemerge(repo, fw, fd, fo, wctx, mctx): | |
13 | """perform a 3-way merge in the working directory |
|
63 | """perform a 3-way merge in the working directory | |
@@ -27,38 +77,91 b' def filemerge(repo, fw, fd, fo, wctx, mc' | |||||
27 | f.close() |
|
77 | f.close() | |
28 | return name |
|
78 | return name | |
29 |
|
79 | |||
30 | fcm = wctx.filectx(fw) |
|
80 | def isbin(ctx): | |
31 | fcmdata = wctx.filectx(fd).data() |
|
81 | try: | |
|
82 | return util.binary(ctx.data()) | |||
|
83 | except IOError: | |||
|
84 | return False | |||
|
85 | ||||
32 | fco = mctx.filectx(fo) |
|
86 | fco = mctx.filectx(fo) | |
33 |
|
87 | if not fco.cmp(wctx.filectx(fd).data()): # files identical? | ||
34 | if not fco.cmp(fcmdata): # files identical? |
|
|||
35 | return None |
|
88 | return None | |
36 |
|
89 | |||
37 | fca = fcm.ancestor(fco) |
|
90 | ui = repo.ui | |
38 | if not fca: |
|
91 | fcm = wctx.filectx(fw) | |
39 |
|
|
92 | fca = fcm.ancestor(fco) or repo.filectx(fw, fileid=nullrev) | |
|
93 | binary = isbin(fcm) or isbin(fco) or isbin(fca) | |||
|
94 | symlink = fcm.islink() or fco.islink() | |||
|
95 | tool = _picktool(repo, ui, fw, binary, symlink) | |||
|
96 | ui.debug(_("picked tool '%s' for %s (binary %s symlink %s)\n") % | |||
|
97 | (tool, fw, binary, symlink)) | |||
|
98 | ||||
|
99 | if not tool: | |||
|
100 | tool = "internal:local" | |||
|
101 | if ui.prompt(_(" no tool found to merge %s\n" | |||
|
102 | "keep (l)ocal or take (o)ther?") % fw, | |||
|
103 | _("[lo]"), _("l")) != _("l"): | |||
|
104 | tool = "internal:other" | |||
|
105 | if tool == "internal:local": | |||
|
106 | return 0 | |||
|
107 | if tool == "internal:other": | |||
|
108 | repo.wwrite(fd, fco.data(), fco.fileflags()) | |||
|
109 | return 0 | |||
|
110 | if tool == "internal:fail": | |||
|
111 | return 1 | |||
|
112 | ||||
|
113 | # do the actual merge | |||
40 | a = repo.wjoin(fd) |
|
114 | a = repo.wjoin(fd) | |
41 | b = temp("base", fca) |
|
115 | b = temp("base", fca) | |
42 | c = temp("other", fco) |
|
116 | c = temp("other", fco) | |
|
117 | out = "" | |||
|
118 | back = a + ".orig" | |||
|
119 | util.copyfile(a, back) | |||
43 |
|
120 | |||
44 | if fw != fo: |
|
121 | if fw != fo: | |
45 | repo.ui.status(_("merging %s and %s\n") % (fw, fo)) |
|
122 | repo.ui.status(_("merging %s and %s\n") % (fw, fo)) | |
46 | else: |
|
123 | else: | |
47 | repo.ui.status(_("merging %s\n") % fw) |
|
124 | repo.ui.status(_("merging %s\n") % fw) | |
48 |
|
||||
49 | repo.ui.debug(_("my %s other %s ancestor %s\n") % (fcm, fco, fca)) |
|
125 | repo.ui.debug(_("my %s other %s ancestor %s\n") % (fcm, fco, fca)) | |
50 |
|
126 | |||
51 | cmd = (os.environ.get("HGMERGE") or repo.ui.config("ui", "merge") |
|
127 | # do we attempt to simplemerge first? | |
52 | or "hgmerge") |
|
128 | if _toolbool(ui, tool, "premerge", not (binary or symlink)): | |
53 | r = util.system('%s "%s" "%s" "%s"' % (cmd, a, b, c), cwd=repo.root, |
|
129 | r = simplemerge.simplemerge(a, b, c, quiet=True) | |
54 | environ={'HG_FILE': fd, |
|
130 | if not r: | |
55 | 'HG_MY_NODE': str(wctx.parents()[0]), |
|
131 | ui.debug(_(" premerge successful\n")) | |
56 | 'HG_OTHER_NODE': str(mctx), |
|
132 | os.unlink(back) | |
57 | 'HG_MY_ISLINK': fcm.islink(), |
|
133 | os.unlink(b) | |
58 | 'HG_OTHER_ISLINK': fco.islink(), |
|
134 | os.unlink(c) | |
59 | 'HG_BASE_ISLINK': fca.islink(),}) |
|
135 | return 0 | |
|
136 | util.copyfile(back, a) # restore from backup and try again | |||
|
137 | ||||
|
138 | env = dict(HG_FILE=fd, | |||
|
139 | HG_MY_NODE=str(wctx.parents()[0]), | |||
|
140 | HG_OTHER_NODE=str(mctx), | |||
|
141 | HG_MY_ISLINK=fcm.islink(), | |||
|
142 | HG_OTHER_ISLINK=fco.islink(), | |||
|
143 | HG_BASE_ISLINK=fca.islink()) | |||
|
144 | ||||
|
145 | if tool == "internal:merge": | |||
|
146 | r = simplemerge.simplemerge(a, b, c, label=['local', 'other']) | |||
|
147 | else: | |||
|
148 | toolpath = _findtool(ui, tool) | |||
|
149 | args = _toolstr(ui, tool, "args", '$local $base $other') | |||
|
150 | if "$output" in args: | |||
|
151 | out, a = a, back # read input from backup, write to original | |||
|
152 | replace = dict(local=a, base=b, other=c, output=out) | |||
|
153 | args = re.sub("\$(local|base|other|output)", | |||
|
154 | lambda x: '"%s"' % replace[x.group()[1:]], args) | |||
|
155 | r = util.system(toolpath + ' ' + args, cwd=repo.root, environ=env) | |||
|
156 | ||||
|
157 | if not r and _toolbool(ui, tool, "checkconflicts"): | |||
|
158 | if re.match("^(<<<<<<< .*|=======|>>>>>>> .*)$", fcm.data()): | |||
|
159 | r = 1 | |||
|
160 | ||||
60 | if r: |
|
161 | if r: | |
61 | repo.ui.warn(_("merging %s failed!\n") % fd) |
|
162 | repo.ui.warn(_("merging %s failed!\n") % fd) | |
|
163 | else: | |||
|
164 | os.unlink(back) | |||
62 |
|
165 | |||
63 | os.unlink(b) |
|
166 | os.unlink(b) | |
64 | os.unlink(c) |
|
167 | os.unlink(c) |
@@ -420,9 +420,7 b' DAEMON_PIDS = None' | |||||
420 | HGRCPATH = None |
|
420 | HGRCPATH = None | |
421 |
|
421 | |||
422 | os.environ["HGEDITOR"] = sys.executable + ' -c "import sys; sys.exit(0)"' |
|
422 | os.environ["HGEDITOR"] = sys.executable + ' -c "import sys; sys.exit(0)"' | |
423 | os.environ["HGMERGE"] = ('python "%s" -L my -L other' |
|
423 | os.environ["HGMERGE"] = "internal:merge" | |
424 | % os.path.join(TESTDIR, os.path.pardir, |
|
|||
425 | 'contrib', 'simplemerge')) |
|
|||
426 | os.environ["HGUSER"] = "test" |
|
424 | os.environ["HGUSER"] = "test" | |
427 | os.environ["HGENCODING"] = "ascii" |
|
425 | os.environ["HGENCODING"] = "ascii" | |
428 | os.environ["HGENCODINGMODE"] = "strict" |
|
426 | os.environ["HGENCODINGMODE"] = "strict" |
@@ -13,21 +13,26 b' A b' | |||||
13 | % should fail |
|
13 | % should fail | |
14 | a already tracked! |
|
14 | a already tracked! | |
15 | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved |
|
15 | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved | |
|
16 | merging a | |||
16 | warning: conflicts during merge. |
|
17 | warning: conflicts during merge. | |
17 | merging a |
|
|||
18 | merging a failed! |
|
18 | merging a failed! | |
19 | 0 files updated, 0 files merged, 0 files removed, 1 files unresolved |
|
19 | 0 files updated, 0 files merged, 0 files removed, 1 files unresolved | |
20 | There are unresolved merges, you can redo the full merge using: |
|
20 | There are unresolved merges, you can redo the full merge using: | |
21 | hg update -C 2 |
|
21 | hg update -C 2 | |
22 | hg merge 1 |
|
22 | hg merge 1 | |
23 | M a |
|
23 | M a | |
|
24 | ? a.orig | |||
24 | % should fail |
|
25 | % should fail | |
25 | a already tracked! |
|
26 | a already tracked! | |
26 | M a |
|
27 | M a | |
|
28 | ? a.orig | |||
27 | % issue683 |
|
29 | % issue683 | |
28 | R a |
|
30 | R a | |
|
31 | ? a.orig | |||
29 | M a |
|
32 | M a | |
|
33 | ? a.orig | |||
30 | c does not exist! |
|
34 | c does not exist! | |
31 | d does not exist! |
|
35 | d does not exist! | |
32 | M a |
|
36 | M a | |
33 | A c |
|
37 | A c | |
|
38 | ? a.orig |
@@ -1,15 +1,16 b'' | |||||
1 | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved |
|
1 | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved | |
|
2 | merging a | |||
2 | warning: conflicts during merge. |
|
3 | warning: conflicts during merge. | |
3 | merging a |
|
|||
4 | merging a failed! |
|
4 | merging a failed! | |
5 | 0 files updated, 0 files merged, 0 files removed, 1 files unresolved |
|
5 | 0 files updated, 0 files merged, 0 files removed, 1 files unresolved | |
6 | There are unresolved merges, you can redo the full merge using: |
|
6 | There are unresolved merges, you can redo the full merge using: | |
7 | hg update -C 2 |
|
7 | hg update -C 2 | |
8 | hg merge 1 |
|
8 | hg merge 1 | |
9 | e7fe8eb3e180+0d24b7662d3e+ tip |
|
9 | e7fe8eb3e180+0d24b7662d3e+ tip | |
10 |
<<<<<<< |
|
10 | <<<<<<< local | |
11 | something else |
|
11 | something else | |
12 | ======= |
|
12 | ======= | |
13 | something |
|
13 | something | |
14 | >>>>>>> other |
|
14 | >>>>>>> other | |
15 | M a |
|
15 | M a | |
|
16 | ? a.orig |
@@ -260,8 +260,8 b' 1 files updated, 0 files merged, 2 files' | |||||
260 | adding right-1 |
|
260 | adding right-1 | |
261 | adding right-2 |
|
261 | adding right-2 | |
262 | 3 files updated, 0 files merged, 2 files removed, 0 files unresolved |
|
262 | 3 files updated, 0 files merged, 2 files removed, 0 files unresolved | |
|
263 | merging b | |||
263 | warning: conflicts during merge. |
|
264 | warning: conflicts during merge. | |
264 | merging b |
|
|||
265 | merging b failed! |
|
265 | merging b failed! | |
266 | 2 files updated, 0 files merged, 0 files removed, 1 files unresolved |
|
266 | 2 files updated, 0 files merged, 0 files removed, 1 files unresolved | |
267 | There are unresolved merges, you can redo the full merge using: |
|
267 | There are unresolved merges, you can redo the full merge using: |
@@ -14,11 +14,15 b' resolving manifests' | |||||
14 | a: remote moved to b -> m |
|
14 | a: remote moved to b -> m | |
15 | copying a to b |
|
15 | copying a to b | |
16 | copying a to c |
|
16 | copying a to c | |
|
17 | picked tool 'internal:merge' for a (binary False symlink False) | |||
17 | merging a and b |
|
18 | merging a and b | |
18 | my a@fb3948d97f07+ other b@40da226db0f0 ancestor a@583c7b748052 |
|
19 | my a@fb3948d97f07+ other b@40da226db0f0 ancestor a@583c7b748052 | |
|
20 | premerge successful | |||
19 | removing a |
|
21 | removing a | |
|
22 | picked tool 'internal:merge' for a (binary False symlink False) | |||
20 | merging a and c |
|
23 | merging a and c | |
21 | my a@fb3948d97f07+ other c@40da226db0f0 ancestor a@583c7b748052 |
|
24 | my a@fb3948d97f07+ other c@40da226db0f0 ancestor a@583c7b748052 | |
|
25 | premerge successful | |||
22 | 0 files updated, 2 files merged, 0 files removed, 0 files unresolved |
|
26 | 0 files updated, 2 files merged, 0 files removed, 0 files unresolved | |
23 | (branch merge, don't forget to commit) |
|
27 | (branch merge, don't forget to commit) | |
24 | -- b -- |
|
28 | -- b -- |
@@ -10,10 +10,14 b' resolving manifests' | |||||
10 | foo: versions differ -> m |
|
10 | foo: versions differ -> m | |
11 | foo: remote copied to bar -> m |
|
11 | foo: remote copied to bar -> m | |
12 | copying foo to bar |
|
12 | copying foo to bar | |
|
13 | picked tool 'internal:merge' for foo (binary False symlink False) | |||
13 | merging foo and bar |
|
14 | merging foo and bar | |
14 | my foo@2092631ce82b+ other bar@7731dad1c2b9 ancestor foo@310fd17130da |
|
15 | my foo@2092631ce82b+ other bar@7731dad1c2b9 ancestor foo@310fd17130da | |
|
16 | premerge successful | |||
|
17 | picked tool 'internal:merge' for foo (binary False symlink False) | |||
15 | merging foo |
|
18 | merging foo | |
16 | my foo@2092631ce82b+ other foo@7731dad1c2b9 ancestor foo@310fd17130da |
|
19 | my foo@2092631ce82b+ other foo@7731dad1c2b9 ancestor foo@310fd17130da | |
|
20 | premerge successful | |||
17 | 0 files updated, 2 files merged, 0 files removed, 0 files unresolved |
|
21 | 0 files updated, 2 files merged, 0 files removed, 0 files unresolved | |
18 | (branch merge, don't forget to commit) |
|
22 | (branch merge, don't forget to commit) | |
19 | -- foo -- |
|
23 | -- foo -- |
@@ -2,7 +2,6 b' Checking encoding (ascii)...' | |||||
2 | Checking extensions... |
|
2 | Checking extensions... | |
3 | Checking templates... |
|
3 | Checking templates... | |
4 | Checking patch... |
|
4 | Checking patch... | |
5 | Checking merge helper... |
|
|||
6 | Checking commit editor... |
|
5 | Checking commit editor... | |
7 | Checking username... |
|
6 | Checking username... | |
8 | No problems detected |
|
7 | No problems detected |
@@ -28,8 +28,10 b' resolving manifests' | |||||
28 | 1a -> 1 * |
|
28 | 1a -> 1 * | |
29 | checking for directory renames |
|
29 | checking for directory renames | |
30 | 1a: local moved to 1 -> m |
|
30 | 1a: local moved to 1 -> m | |
|
31 | picked tool 'internal:merge' for 1a (binary False symlink False) | |||
31 | merging 1a and 1 |
|
32 | merging 1a and 1 | |
32 | my 1a@ac7575e3c052+ other 1@746e9549ea96 ancestor 1@81f4b099af3d |
|
33 | my 1a@ac7575e3c052+ other 1@746e9549ea96 ancestor 1@81f4b099af3d | |
|
34 | premerge successful | |||
33 | 0 files updated, 1 files merged, 0 files removed, 0 files unresolved |
|
35 | 0 files updated, 1 files merged, 0 files removed, 0 files unresolved | |
34 | (branch merge, don't forget to commit) |
|
36 | (branch merge, don't forget to commit) | |
35 | 1 files updated, 0 files merged, 1 files removed, 0 files unresolved |
|
37 | 1 files updated, 0 files merged, 1 files removed, 0 files unresolved | |
@@ -44,8 +46,10 b' resolving manifests' | |||||
44 | checking for directory renames |
|
46 | checking for directory renames | |
45 | 1: remote moved to 1a -> m |
|
47 | 1: remote moved to 1a -> m | |
46 | copying 1 to 1a |
|
48 | copying 1 to 1a | |
|
49 | picked tool 'internal:merge' for 1 (binary False symlink False) | |||
47 | merging 1 and 1a |
|
50 | merging 1 and 1a | |
48 | my 1@746e9549ea96+ other 1a@ac7575e3c052 ancestor 1@81f4b099af3d |
|
51 | my 1@746e9549ea96+ other 1a@ac7575e3c052 ancestor 1@81f4b099af3d | |
|
52 | premerge successful | |||
49 | removing 1 |
|
53 | removing 1 | |
50 | 0 files updated, 1 files merged, 0 files removed, 0 files unresolved |
|
54 | 0 files updated, 1 files merged, 0 files removed, 0 files unresolved | |
51 | (branch merge, don't forget to commit) |
|
55 | (branch merge, don't forget to commit) |
@@ -25,8 +25,10 b' resolving manifests' | |||||
25 | ancestor 0a3ab4856510 local 2d2f9a22c82b+ remote 7d3b554bfdf1 |
|
25 | ancestor 0a3ab4856510 local 2d2f9a22c82b+ remote 7d3b554bfdf1 | |
26 | searching for copies back to rev 1 |
|
26 | searching for copies back to rev 1 | |
27 | bar: versions differ -> m |
|
27 | bar: versions differ -> m | |
|
28 | picked tool 'internal:merge' for bar (binary False symlink False) | |||
28 | merging bar |
|
29 | merging bar | |
29 | my bar@2d2f9a22c82b+ other bar@7d3b554bfdf1 ancestor bar@0a3ab4856510 |
|
30 | my bar@2d2f9a22c82b+ other bar@7d3b554bfdf1 ancestor bar@0a3ab4856510 | |
|
31 | premerge successful | |||
30 | 0 files updated, 1 files merged, 0 files removed, 0 files unresolved |
|
32 | 0 files updated, 1 files merged, 0 files removed, 0 files unresolved | |
31 | (branch merge, don't forget to commit) |
|
33 | (branch merge, don't forget to commit) | |
32 | % contents of bar should be line1 line2 |
|
34 | % contents of bar should be line1 line2 | |
@@ -71,8 +73,10 b' resolving manifests' | |||||
71 | ancestor 0a3ab4856510 local 2d2f9a22c82b+ remote 96ab80c60897 |
|
73 | ancestor 0a3ab4856510 local 2d2f9a22c82b+ remote 96ab80c60897 | |
72 | searching for copies back to rev 1 |
|
74 | searching for copies back to rev 1 | |
73 | bar: versions differ -> m |
|
75 | bar: versions differ -> m | |
|
76 | picked tool 'internal:merge' for bar (binary False symlink False) | |||
74 | merging bar |
|
77 | merging bar | |
75 | my bar@2d2f9a22c82b+ other bar@96ab80c60897 ancestor bar@0a3ab4856510 |
|
78 | my bar@2d2f9a22c82b+ other bar@96ab80c60897 ancestor bar@0a3ab4856510 | |
|
79 | premerge successful | |||
76 | 0 files updated, 1 files merged, 0 files removed, 0 files unresolved |
|
80 | 0 files updated, 1 files merged, 0 files removed, 0 files unresolved | |
77 | (branch merge, don't forget to commit) |
|
81 | (branch merge, don't forget to commit) | |
78 | % contents of bar should be line1 line2 |
|
82 | % contents of bar should be line1 line2 |
@@ -18,27 +18,28 b' M zzz1_merge_ok' | |||||
18 | M zzz2_merge_bad |
|
18 | M zzz2_merge_bad | |
19 | # local merge with bad merge tool |
|
19 | # local merge with bad merge tool | |
20 | merging zzz1_merge_ok |
|
20 | merging zzz1_merge_ok | |
21 | merging zzz1_merge_ok failed! |
|
|||
22 | merging zzz2_merge_bad |
|
21 | merging zzz2_merge_bad | |
23 | merging zzz2_merge_bad failed! |
|
22 | merging zzz2_merge_bad failed! | |
24 |
3 files updated, |
|
23 | 3 files updated, 1 files merged, 2 files removed, 1 files unresolved | |
25 | There are unresolved merges with locally modified files. |
|
24 | There are unresolved merges with locally modified files. | |
26 |
You can |
|
25 | You can finish the partial merge using: | |
27 | hg update 0 |
|
26 | hg update 0 | |
28 | hg update 1 |
|
27 | hg update 1 | |
29 | 2 files updated, 0 files merged, 3 files removed, 0 files unresolved |
|
28 | 2 files updated, 0 files merged, 3 files removed, 0 files unresolved | |
30 | --- a/zzz1_merge_ok |
|
29 | --- a/zzz1_merge_ok | |
31 | +++ b/zzz1_merge_ok |
|
30 | +++ b/zzz1_merge_ok | |
|
31 | +new first line | |||
32 | +new last line |
|
32 | +new last line | |
33 | --- a/zzz2_merge_bad |
|
33 | --- a/zzz2_merge_bad | |
34 | +++ b/zzz2_merge_bad |
|
34 | +++ b/zzz2_merge_bad | |
35 | +another last line |
|
35 | +another last line | |
36 | M zzz1_merge_ok |
|
36 | M zzz1_merge_ok | |
37 | M zzz2_merge_bad |
|
37 | M zzz2_merge_bad | |
|
38 | ? zzz2_merge_bad.orig | |||
38 | # local merge with conflicts |
|
39 | # local merge with conflicts | |
39 | warning: conflicts during merge. |
|
|||
40 | merging zzz1_merge_ok |
|
40 | merging zzz1_merge_ok | |
41 | merging zzz2_merge_bad |
|
41 | merging zzz2_merge_bad | |
|
42 | warning: conflicts during merge. | |||
42 | merging zzz2_merge_bad failed! |
|
43 | merging zzz2_merge_bad failed! | |
43 | 3 files updated, 1 files merged, 2 files removed, 1 files unresolved |
|
44 | 3 files updated, 1 files merged, 2 files removed, 1 files unresolved | |
44 | There are unresolved merges with locally modified files. |
|
45 | There are unresolved merges with locally modified files. | |
@@ -57,6 +58,7 b' 2 files updated, 0 files merged, 3 files' | |||||
57 | +new last line |
|
58 | +new last line | |
58 | M zzz1_merge_ok |
|
59 | M zzz1_merge_ok | |
59 | M zzz2_merge_bad |
|
60 | M zzz2_merge_bad | |
|
61 | ? zzz2_merge_bad.orig | |||
60 | # local merge without conflicts |
|
62 | # local merge without conflicts | |
61 | merging zzz1_merge_ok |
|
63 | merging zzz1_merge_ok | |
62 | 4 files updated, 1 files merged, 2 files removed, 0 files unresolved |
|
64 | 4 files updated, 1 files merged, 2 files removed, 0 files unresolved |
@@ -9,8 +9,8 b' 9eca13a34789' | |||||
9 | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved |
|
9 | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved | |
10 | f248da0d4c3e tip |
|
10 | f248da0d4c3e tip | |
11 | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved |
|
11 | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved | |
|
12 | merging file1 | |||
12 | warning: conflicts during merge. |
|
13 | warning: conflicts during merge. | |
13 | merging file1 |
|
|||
14 | merging file1 failed! |
|
14 | merging file1 failed! | |
15 | 0 files updated, 0 files merged, 0 files removed, 1 files unresolved |
|
15 | 0 files updated, 0 files merged, 0 files removed, 1 files unresolved | |
16 | There are unresolved merges with locally modified files. |
|
16 | There are unresolved merges with locally modified files. | |
@@ -23,15 +23,19 b' diff -r f248da0d4c3e file1' | |||||
23 | @@ -1,3 +1,7 @@ |
|
23 | @@ -1,3 +1,7 @@ | |
24 | added file1 |
|
24 | added file1 | |
25 | another line of text |
|
25 | another line of text | |
26 |
+<<<<<<< |
|
26 | +<<<<<<< local | |
27 | +changed file1 different |
|
27 | +changed file1 different | |
28 | +======= |
|
28 | +======= | |
29 | changed file1 |
|
29 | changed file1 | |
30 | +>>>>>>> other |
|
30 | +>>>>>>> other | |
31 | M file1 |
|
31 | M file1 | |
|
32 | ? file1.orig | |||
32 | f248da0d4c3e+ tip |
|
33 | f248da0d4c3e+ tip | |
33 | reverting file1 |
|
34 | reverting file1 | |
|
35 | ? file1.orig | |||
34 | f248da0d4c3e tip |
|
36 | f248da0d4c3e tip | |
|
37 | ? file1.orig | |||
35 | f248da0d4c3e tip |
|
38 | f248da0d4c3e tip | |
36 | 0 files updated, 0 files merged, 0 files removed, 0 files unresolved |
|
39 | 0 files updated, 0 files merged, 0 files removed, 0 files unresolved | |
|
40 | ? file1.orig | |||
37 | f248da0d4c3e tip |
|
41 | f248da0d4c3e tip |
@@ -6,8 +6,8 b' adding manifests' | |||||
6 | adding file changes |
|
6 | adding file changes | |
7 | added 1 changesets with 1 changes to 1 files (+1 heads) |
|
7 | added 1 changesets with 1 changes to 1 files (+1 heads) | |
8 | (run 'hg heads' to see heads, 'hg merge' to merge) |
|
8 | (run 'hg heads' to see heads, 'hg merge' to merge) | |
|
9 | merging test.txt | |||
9 | warning: conflicts during merge. |
|
10 | warning: conflicts during merge. | |
10 | merging test.txt |
|
|||
11 | merging test.txt failed! |
|
11 | merging test.txt failed! | |
12 | 0 files updated, 0 files merged, 0 files removed, 1 files unresolved |
|
12 | 0 files updated, 0 files merged, 0 files removed, 1 files unresolved | |
13 | There are unresolved merges, you can redo the full merge using: |
|
13 | There are unresolved merges, you can redo the full merge using: | |
@@ -20,21 +20,22 b' adding manifests' | |||||
20 | adding file changes |
|
20 | adding file changes | |
21 | added 1 changesets with 1 changes to 1 files (+1 heads) |
|
21 | added 1 changesets with 1 changes to 1 files (+1 heads) | |
22 | (run 'hg heads' to see heads, 'hg merge' to merge) |
|
22 | (run 'hg heads' to see heads, 'hg merge' to merge) | |
23 | warning: conflicts during merge. |
|
|||
24 | resolving manifests |
|
23 | resolving manifests | |
25 | overwrite None partial False |
|
24 | overwrite None partial False | |
26 | ancestor faaea63e63a9 local 451c744aabcc+ remote a070d41e8360 |
|
25 | ancestor faaea63e63a9 local 451c744aabcc+ remote a070d41e8360 | |
27 | searching for copies back to rev 1 |
|
26 | searching for copies back to rev 1 | |
28 | test.txt: versions differ -> m |
|
27 | test.txt: versions differ -> m | |
|
28 | picked tool 'internal:merge' for test.txt (binary False symlink False) | |||
29 | merging test.txt |
|
29 | merging test.txt | |
30 | my test.txt@451c744aabcc+ other test.txt@a070d41e8360 ancestor test.txt@faaea63e63a9 |
|
30 | my test.txt@451c744aabcc+ other test.txt@a070d41e8360 ancestor test.txt@faaea63e63a9 | |
|
31 | warning: conflicts during merge. | |||
31 | merging test.txt failed! |
|
32 | merging test.txt failed! | |
32 | 0 files updated, 0 files merged, 0 files removed, 1 files unresolved |
|
33 | 0 files updated, 0 files merged, 0 files removed, 1 files unresolved | |
33 | There are unresolved merges, you can redo the full merge using: |
|
34 | There are unresolved merges, you can redo the full merge using: | |
34 | hg update -C 3 |
|
35 | hg update -C 3 | |
35 | hg merge 4 |
|
36 | hg merge 4 | |
36 | one |
|
37 | one | |
37 |
<<<<<<< |
|
38 | <<<<<<< local | |
38 | two-point-five |
|
39 | two-point-five | |
39 | ======= |
|
40 | ======= | |
40 | two-point-one |
|
41 | two-point-one |
@@ -5,8 +5,7 b' adding quux2' | |||||
5 | merging bar |
|
5 | merging bar | |
6 | merging bar failed! |
|
6 | merging bar failed! | |
7 | merging foo and baz |
|
7 | merging foo and baz | |
8 | merging baz failed! |
|
8 | 1 files updated, 1 files merged, 0 files removed, 1 files unresolved | |
9 | 1 files updated, 0 files merged, 0 files removed, 2 files unresolved |
|
|||
10 | There are unresolved merges, you can redo the full merge using: |
|
9 | There are unresolved merges, you can redo the full merge using: | |
11 | hg update -C 2 |
|
10 | hg update -C 2 | |
12 | hg merge 1 |
|
11 | hg merge 1 | |
@@ -14,8 +13,7 b' 3 files updated, 0 files merged, 1 files' | |||||
14 | merging bar |
|
13 | merging bar | |
15 | merging bar failed! |
|
14 | merging bar failed! | |
16 | merging baz and foo |
|
15 | merging baz and foo | |
17 | merging baz failed! |
|
16 | 1 files updated, 1 files merged, 0 files removed, 1 files unresolved | |
18 | 1 files updated, 0 files merged, 0 files removed, 2 files unresolved |
|
|||
19 | There are unresolved merges, you can redo the full merge using: |
|
17 | There are unresolved merges, you can redo the full merge using: | |
20 | hg update -C 1 |
|
18 | hg update -C 1 | |
21 | hg merge 2 |
|
19 | hg merge 2 |
@@ -19,8 +19,10 b' resolving manifests' | |||||
19 | a: remote moved to b -> m |
|
19 | a: remote moved to b -> m | |
20 | b2: remote created -> g |
|
20 | b2: remote created -> g | |
21 | copying a to b |
|
21 | copying a to b | |
|
22 | picked tool 'internal:merge' for a (binary False symlink False) | |||
22 | merging a and b |
|
23 | merging a and b | |
23 | my a@f26ec4fc3fa3+ other b@8e765a822af2 ancestor a@af1939970a1c |
|
24 | my a@f26ec4fc3fa3+ other b@8e765a822af2 ancestor a@af1939970a1c | |
|
25 | premerge successful | |||
24 | removing a |
|
26 | removing a | |
25 | warning: detected divergent renames of a2 to: |
|
27 | warning: detected divergent renames of a2 to: | |
26 | c2 |
|
28 | c2 |
@@ -13,8 +13,11 b' resolving manifests' | |||||
13 | rev: versions differ -> m |
|
13 | rev: versions differ -> m | |
14 | a: remote copied to b -> m |
|
14 | a: remote copied to b -> m | |
15 | copying a to b |
|
15 | copying a to b | |
|
16 | picked tool 'python ../merge' for a (binary False symlink False) | |||
16 | merging a and b |
|
17 | merging a and b | |
17 | my a@e300d1c794ec+ other b@735846fee2d7 ancestor a@924404dff337 |
|
18 | my a@e300d1c794ec+ other b@735846fee2d7 ancestor a@924404dff337 | |
|
19 | premerge successful | |||
|
20 | picked tool 'python ../merge' for rev (binary False symlink False) | |||
18 | merging rev |
|
21 | merging rev | |
19 | my rev@e300d1c794ec+ other rev@735846fee2d7 ancestor rev@924404dff337 |
|
22 | my rev@e300d1c794ec+ other rev@735846fee2d7 ancestor rev@924404dff337 | |
20 | 0 files updated, 2 files merged, 0 files removed, 0 files unresolved |
|
23 | 0 files updated, 2 files merged, 0 files removed, 0 files unresolved | |
@@ -41,8 +44,11 b' resolving manifests' | |||||
41 | b: local copied to a -> m |
|
44 | b: local copied to a -> m | |
42 | rev: versions differ -> m |
|
45 | rev: versions differ -> m | |
43 | getting a |
|
46 | getting a | |
|
47 | picked tool 'python ../merge' for b (binary False symlink False) | |||
44 | merging b and a |
|
48 | merging b and a | |
45 | my b@ac809aeed39a+ other a@f4db7e329e71 ancestor a@924404dff337 |
|
49 | my b@ac809aeed39a+ other a@f4db7e329e71 ancestor a@924404dff337 | |
|
50 | premerge successful | |||
|
51 | picked tool 'python ../merge' for rev (binary False symlink False) | |||
46 | merging rev |
|
52 | merging rev | |
47 | my rev@ac809aeed39a+ other rev@f4db7e329e71 ancestor rev@924404dff337 |
|
53 | my rev@ac809aeed39a+ other rev@f4db7e329e71 ancestor rev@924404dff337 | |
48 | 1 files updated, 2 files merged, 0 files removed, 0 files unresolved |
|
54 | 1 files updated, 2 files merged, 0 files removed, 0 files unresolved | |
@@ -68,9 +74,12 b' resolving manifests' | |||||
68 | rev: versions differ -> m |
|
74 | rev: versions differ -> m | |
69 | a: remote moved to b -> m |
|
75 | a: remote moved to b -> m | |
70 | copying a to b |
|
76 | copying a to b | |
|
77 | picked tool 'python ../merge' for a (binary False symlink False) | |||
71 | merging a and b |
|
78 | merging a and b | |
72 | my a@e300d1c794ec+ other b@e03727d2d66b ancestor a@924404dff337 |
|
79 | my a@e300d1c794ec+ other b@e03727d2d66b ancestor a@924404dff337 | |
|
80 | premerge successful | |||
73 | removing a |
|
81 | removing a | |
|
82 | picked tool 'python ../merge' for rev (binary False symlink False) | |||
74 | merging rev |
|
83 | merging rev | |
75 | my rev@e300d1c794ec+ other rev@e03727d2d66b ancestor rev@924404dff337 |
|
84 | my rev@e300d1c794ec+ other rev@e03727d2d66b ancestor rev@924404dff337 | |
76 | 0 files updated, 2 files merged, 0 files removed, 0 files unresolved |
|
85 | 0 files updated, 2 files merged, 0 files removed, 0 files unresolved | |
@@ -94,8 +103,11 b' resolving manifests' | |||||
94 | checking for directory renames |
|
103 | checking for directory renames | |
95 | b: local moved to a -> m |
|
104 | b: local moved to a -> m | |
96 | rev: versions differ -> m |
|
105 | rev: versions differ -> m | |
|
106 | picked tool 'python ../merge' for b (binary False symlink False) | |||
97 | merging b and a |
|
107 | merging b and a | |
98 | my b@ecf3cb2a4219+ other a@f4db7e329e71 ancestor a@924404dff337 |
|
108 | my b@ecf3cb2a4219+ other a@f4db7e329e71 ancestor a@924404dff337 | |
|
109 | premerge successful | |||
|
110 | picked tool 'python ../merge' for rev (binary False symlink False) | |||
99 | merging rev |
|
111 | merging rev | |
100 | my rev@ecf3cb2a4219+ other rev@f4db7e329e71 ancestor rev@924404dff337 |
|
112 | my rev@ecf3cb2a4219+ other rev@f4db7e329e71 ancestor rev@924404dff337 | |
101 | 0 files updated, 2 files merged, 0 files removed, 0 files unresolved |
|
113 | 0 files updated, 2 files merged, 0 files removed, 0 files unresolved | |
@@ -120,6 +132,7 b' resolving manifests' | |||||
120 | rev: versions differ -> m |
|
132 | rev: versions differ -> m | |
121 | b: remote created -> g |
|
133 | b: remote created -> g | |
122 | getting b |
|
134 | getting b | |
|
135 | picked tool 'python ../merge' for rev (binary False symlink False) | |||
123 | merging rev |
|
136 | merging rev | |
124 | my rev@94b33a1b7f2d+ other rev@735846fee2d7 ancestor rev@924404dff337 |
|
137 | my rev@94b33a1b7f2d+ other rev@735846fee2d7 ancestor rev@924404dff337 | |
125 | 1 files updated, 1 files merged, 0 files removed, 0 files unresolved |
|
138 | 1 files updated, 1 files merged, 0 files removed, 0 files unresolved | |
@@ -142,6 +155,7 b' resolving manifests' | |||||
142 | b -> a |
|
155 | b -> a | |
143 | checking for directory renames |
|
156 | checking for directory renames | |
144 | rev: versions differ -> m |
|
157 | rev: versions differ -> m | |
|
158 | picked tool 'python ../merge' for rev (binary False symlink False) | |||
145 | merging rev |
|
159 | merging rev | |
146 | my rev@ac809aeed39a+ other rev@97c705ade336 ancestor rev@924404dff337 |
|
160 | my rev@ac809aeed39a+ other rev@97c705ade336 ancestor rev@924404dff337 | |
147 | 0 files updated, 1 files merged, 0 files removed, 0 files unresolved |
|
161 | 0 files updated, 1 files merged, 0 files removed, 0 files unresolved | |
@@ -168,6 +182,7 b' resolving manifests' | |||||
168 | b: remote created -> g |
|
182 | b: remote created -> g | |
169 | removing a |
|
183 | removing a | |
170 | getting b |
|
184 | getting b | |
|
185 | picked tool 'python ../merge' for rev (binary False symlink False) | |||
171 | merging rev |
|
186 | merging rev | |
172 | my rev@94b33a1b7f2d+ other rev@e03727d2d66b ancestor rev@924404dff337 |
|
187 | my rev@94b33a1b7f2d+ other rev@e03727d2d66b ancestor rev@924404dff337 | |
173 | 1 files updated, 1 files merged, 1 files removed, 0 files unresolved |
|
188 | 1 files updated, 1 files merged, 1 files removed, 0 files unresolved | |
@@ -189,6 +204,7 b' resolving manifests' | |||||
189 | b -> a |
|
204 | b -> a | |
190 | checking for directory renames |
|
205 | checking for directory renames | |
191 | rev: versions differ -> m |
|
206 | rev: versions differ -> m | |
|
207 | picked tool 'python ../merge' for rev (binary False symlink False) | |||
192 | merging rev |
|
208 | merging rev | |
193 | my rev@ecf3cb2a4219+ other rev@97c705ade336 ancestor rev@924404dff337 |
|
209 | my rev@ecf3cb2a4219+ other rev@97c705ade336 ancestor rev@924404dff337 | |
194 | 0 files updated, 1 files merged, 0 files removed, 0 files unresolved |
|
210 | 0 files updated, 1 files merged, 0 files removed, 0 files unresolved | |
@@ -206,8 +222,10 b' resolving manifests' | |||||
206 | searching for copies back to rev 1 |
|
222 | searching for copies back to rev 1 | |
207 | b: versions differ -> m |
|
223 | b: versions differ -> m | |
208 | rev: versions differ -> m |
|
224 | rev: versions differ -> m | |
|
225 | picked tool 'python ../merge' for b (binary False symlink False) | |||
209 | merging b |
|
226 | merging b | |
210 | my b@ec03c2ca8642+ other b@79cc6877a3b7 ancestor a@924404dff337 |
|
227 | my b@ec03c2ca8642+ other b@79cc6877a3b7 ancestor a@924404dff337 | |
|
228 | picked tool 'python ../merge' for rev (binary False symlink False) | |||
211 | merging rev |
|
229 | merging rev | |
212 | my rev@ec03c2ca8642+ other rev@79cc6877a3b7 ancestor rev@924404dff337 |
|
230 | my rev@ec03c2ca8642+ other rev@79cc6877a3b7 ancestor rev@924404dff337 | |
213 | 0 files updated, 2 files merged, 0 files removed, 0 files unresolved |
|
231 | 0 files updated, 2 files merged, 0 files removed, 0 files unresolved | |
@@ -238,6 +256,7 b' warning: detected divergent renames of a' | |||||
238 | b |
|
256 | b | |
239 | c |
|
257 | c | |
240 | getting c |
|
258 | getting c | |
|
259 | picked tool 'python ../merge' for rev (binary False symlink False) | |||
241 | merging rev |
|
260 | merging rev | |
242 | my rev@ecf3cb2a4219+ other rev@e6abcc1a30c2 ancestor rev@924404dff337 |
|
261 | my rev@ecf3cb2a4219+ other rev@e6abcc1a30c2 ancestor rev@924404dff337 | |
243 | 1 files updated, 1 files merged, 0 files removed, 0 files unresolved |
|
262 | 1 files updated, 1 files merged, 0 files removed, 0 files unresolved | |
@@ -256,8 +275,10 b' resolving manifests' | |||||
256 | searching for copies back to rev 1 |
|
275 | searching for copies back to rev 1 | |
257 | b: versions differ -> m |
|
276 | b: versions differ -> m | |
258 | rev: versions differ -> m |
|
277 | rev: versions differ -> m | |
|
278 | picked tool 'python ../merge' for b (binary False symlink False) | |||
259 | merging b |
|
279 | merging b | |
260 | my b@ac809aeed39a+ other b@af30c7647fc7 ancestor b@000000000000 |
|
280 | my b@ac809aeed39a+ other b@af30c7647fc7 ancestor b@000000000000 | |
|
281 | picked tool 'python ../merge' for rev (binary False symlink False) | |||
261 | merging rev |
|
282 | merging rev | |
262 | my rev@ac809aeed39a+ other rev@af30c7647fc7 ancestor rev@924404dff337 |
|
283 | my rev@ac809aeed39a+ other rev@af30c7647fc7 ancestor rev@924404dff337 | |
263 | 0 files updated, 2 files merged, 0 files removed, 0 files unresolved |
|
284 | 0 files updated, 2 files merged, 0 files removed, 0 files unresolved | |
@@ -278,8 +299,10 b' resolving manifests' | |||||
278 | b: versions differ -> m |
|
299 | b: versions differ -> m | |
279 | rev: versions differ -> m |
|
300 | rev: versions differ -> m | |
280 | removing a |
|
301 | removing a | |
|
302 | picked tool 'python ../merge' for b (binary False symlink False) | |||
281 | merging b |
|
303 | merging b | |
282 | my b@59318016310c+ other b@e03727d2d66b ancestor b@000000000000 |
|
304 | my b@59318016310c+ other b@e03727d2d66b ancestor b@000000000000 | |
|
305 | picked tool 'python ../merge' for rev (binary False symlink False) | |||
283 | merging rev |
|
306 | merging rev | |
284 | my rev@59318016310c+ other rev@e03727d2d66b ancestor rev@924404dff337 |
|
307 | my rev@59318016310c+ other rev@e03727d2d66b ancestor rev@924404dff337 | |
285 | 0 files updated, 2 files merged, 1 files removed, 0 files unresolved |
|
308 | 0 files updated, 2 files merged, 1 files removed, 0 files unresolved | |
@@ -299,8 +322,10 b' resolving manifests' | |||||
299 | b: versions differ -> m |
|
322 | b: versions differ -> m | |
300 | rev: versions differ -> m |
|
323 | rev: versions differ -> m | |
301 | getting a |
|
324 | getting a | |
|
325 | picked tool 'python ../merge' for b (binary False symlink False) | |||
302 | merging b |
|
326 | merging b | |
303 | my b@ac809aeed39a+ other b@8dbce441892a ancestor b@000000000000 |
|
327 | my b@ac809aeed39a+ other b@8dbce441892a ancestor b@000000000000 | |
|
328 | picked tool 'python ../merge' for rev (binary False symlink False) | |||
304 | merging rev |
|
329 | merging rev | |
305 | my rev@ac809aeed39a+ other rev@8dbce441892a ancestor rev@924404dff337 |
|
330 | my rev@ac809aeed39a+ other rev@8dbce441892a ancestor rev@924404dff337 | |
306 | 1 files updated, 2 files merged, 0 files removed, 0 files unresolved |
|
331 | 1 files updated, 2 files merged, 0 files removed, 0 files unresolved | |
@@ -321,8 +346,10 b' resolving manifests' | |||||
321 | b: versions differ -> m |
|
346 | b: versions differ -> m | |
322 | rev: versions differ -> m |
|
347 | rev: versions differ -> m | |
323 | removing a |
|
348 | removing a | |
|
349 | picked tool 'python ../merge' for b (binary False symlink False) | |||
324 | merging b |
|
350 | merging b | |
325 | my b@59318016310c+ other b@e03727d2d66b ancestor b@000000000000 |
|
351 | my b@59318016310c+ other b@e03727d2d66b ancestor b@000000000000 | |
|
352 | picked tool 'python ../merge' for rev (binary False symlink False) | |||
326 | merging rev |
|
353 | merging rev | |
327 | my rev@59318016310c+ other rev@e03727d2d66b ancestor rev@924404dff337 |
|
354 | my rev@59318016310c+ other rev@e03727d2d66b ancestor rev@924404dff337 | |
328 | 0 files updated, 2 files merged, 1 files removed, 0 files unresolved |
|
355 | 0 files updated, 2 files merged, 1 files removed, 0 files unresolved | |
@@ -342,8 +369,10 b' resolving manifests' | |||||
342 | b: versions differ -> m |
|
369 | b: versions differ -> m | |
343 | rev: versions differ -> m |
|
370 | rev: versions differ -> m | |
344 | getting a |
|
371 | getting a | |
|
372 | picked tool 'python ../merge' for b (binary False symlink False) | |||
345 | merging b |
|
373 | merging b | |
346 | my b@ac809aeed39a+ other b@8dbce441892a ancestor b@000000000000 |
|
374 | my b@ac809aeed39a+ other b@8dbce441892a ancestor b@000000000000 | |
|
375 | picked tool 'python ../merge' for rev (binary False symlink False) | |||
347 | merging rev |
|
376 | merging rev | |
348 | my rev@ac809aeed39a+ other rev@8dbce441892a ancestor rev@924404dff337 |
|
377 | my rev@ac809aeed39a+ other rev@8dbce441892a ancestor rev@924404dff337 | |
349 | 1 files updated, 2 files merged, 0 files removed, 0 files unresolved |
|
378 | 1 files updated, 2 files merged, 0 files removed, 0 files unresolved | |
@@ -362,8 +391,10 b' resolving manifests' | |||||
362 | searching for copies back to rev 1 |
|
391 | searching for copies back to rev 1 | |
363 | b: versions differ -> m |
|
392 | b: versions differ -> m | |
364 | rev: versions differ -> m |
|
393 | rev: versions differ -> m | |
|
394 | picked tool 'python ../merge' for b (binary False symlink False) | |||
365 | merging b |
|
395 | merging b | |
366 | my b@0b76e65c8289+ other b@735846fee2d7 ancestor b@000000000000 |
|
396 | my b@0b76e65c8289+ other b@735846fee2d7 ancestor b@000000000000 | |
|
397 | picked tool 'python ../merge' for rev (binary False symlink False) | |||
367 | merging rev |
|
398 | merging rev | |
368 | my rev@0b76e65c8289+ other rev@735846fee2d7 ancestor rev@924404dff337 |
|
399 | my rev@0b76e65c8289+ other rev@735846fee2d7 ancestor rev@924404dff337 | |
369 | 0 files updated, 2 files merged, 0 files removed, 0 files unresolved |
|
400 | 0 files updated, 2 files merged, 0 files removed, 0 files unresolved | |
@@ -384,8 +415,10 b' resolving manifests' | |||||
384 | rev: versions differ -> m |
|
415 | rev: versions differ -> m | |
385 | a: prompt recreating -> g |
|
416 | a: prompt recreating -> g | |
386 | getting a |
|
417 | getting a | |
|
418 | picked tool 'python ../merge' for b (binary False symlink False) | |||
387 | merging b |
|
419 | merging b | |
388 | my b@ecf3cb2a4219+ other b@8dbce441892a ancestor b@000000000000 |
|
420 | my b@ecf3cb2a4219+ other b@8dbce441892a ancestor b@000000000000 | |
|
421 | picked tool 'python ../merge' for rev (binary False symlink False) | |||
389 | merging rev |
|
422 | merging rev | |
390 | my rev@ecf3cb2a4219+ other rev@8dbce441892a ancestor rev@924404dff337 |
|
423 | my rev@ecf3cb2a4219+ other rev@8dbce441892a ancestor rev@924404dff337 | |
391 | 1 files updated, 2 files merged, 0 files removed, 0 files unresolved |
|
424 | 1 files updated, 2 files merged, 0 files removed, 0 files unresolved | |
@@ -404,8 +437,10 b' resolving manifests' | |||||
404 | searching for copies back to rev 1 |
|
437 | searching for copies back to rev 1 | |
405 | b: versions differ -> m |
|
438 | b: versions differ -> m | |
406 | rev: versions differ -> m |
|
439 | rev: versions differ -> m | |
|
440 | picked tool 'python ../merge' for b (binary False symlink False) | |||
407 | merging b |
|
441 | merging b | |
408 | my b@0b76e65c8289+ other b@e03727d2d66b ancestor b@000000000000 |
|
442 | my b@0b76e65c8289+ other b@e03727d2d66b ancestor b@000000000000 | |
|
443 | picked tool 'python ../merge' for rev (binary False symlink False) | |||
409 | merging rev |
|
444 | merging rev | |
410 | my rev@0b76e65c8289+ other rev@e03727d2d66b ancestor rev@924404dff337 |
|
445 | my rev@0b76e65c8289+ other rev@e03727d2d66b ancestor rev@924404dff337 | |
411 | 0 files updated, 2 files merged, 0 files removed, 0 files unresolved |
|
446 | 0 files updated, 2 files merged, 0 files removed, 0 files unresolved | |
@@ -430,9 +465,11 b' resolving manifests' | |||||
430 | rev: versions differ -> m |
|
465 | rev: versions differ -> m | |
431 | a: remote moved to b -> m |
|
466 | a: remote moved to b -> m | |
432 | copying a to b |
|
467 | copying a to b | |
|
468 | picked tool 'python ../merge' for a (binary False symlink False) | |||
433 | merging a and b |
|
469 | merging a and b | |
434 | my a@e300d1c794ec+ other b@79cc6877a3b7 ancestor a@924404dff337 |
|
470 | my a@e300d1c794ec+ other b@79cc6877a3b7 ancestor a@924404dff337 | |
435 | removing a |
|
471 | removing a | |
|
472 | picked tool 'python ../merge' for rev (binary False symlink False) | |||
436 | merging rev |
|
473 | merging rev | |
437 | my rev@e300d1c794ec+ other rev@79cc6877a3b7 ancestor rev@924404dff337 |
|
474 | my rev@e300d1c794ec+ other rev@79cc6877a3b7 ancestor rev@924404dff337 | |
438 | 0 files updated, 2 files merged, 0 files removed, 0 files unresolved |
|
475 | 0 files updated, 2 files merged, 0 files removed, 0 files unresolved | |
@@ -456,8 +493,10 b' resolving manifests' | |||||
456 | checking for directory renames |
|
493 | checking for directory renames | |
457 | b: local moved to a -> m |
|
494 | b: local moved to a -> m | |
458 | rev: versions differ -> m |
|
495 | rev: versions differ -> m | |
|
496 | picked tool 'python ../merge' for b (binary False symlink False) | |||
459 | merging b and a |
|
497 | merging b and a | |
460 | my b@ec03c2ca8642+ other a@f4db7e329e71 ancestor a@924404dff337 |
|
498 | my b@ec03c2ca8642+ other a@f4db7e329e71 ancestor a@924404dff337 | |
|
499 | picked tool 'python ../merge' for rev (binary False symlink False) | |||
461 | merging rev |
|
500 | merging rev | |
462 | my rev@ec03c2ca8642+ other rev@f4db7e329e71 ancestor rev@924404dff337 |
|
501 | my rev@ec03c2ca8642+ other rev@f4db7e329e71 ancestor rev@924404dff337 | |
463 | 0 files updated, 2 files merged, 0 files removed, 0 files unresolved |
|
502 | 0 files updated, 2 files merged, 0 files removed, 0 files unresolved | |
@@ -484,9 +523,12 b' resolving manifests' | |||||
484 | b: local moved to a -> m |
|
523 | b: local moved to a -> m | |
485 | rev: versions differ -> m |
|
524 | rev: versions differ -> m | |
486 | c: remote created -> g |
|
525 | c: remote created -> g | |
|
526 | picked tool 'python ../merge' for b (binary False symlink False) | |||
487 | merging b and a |
|
527 | merging b and a | |
488 | my b@ecf3cb2a4219+ other a@2b958612230f ancestor a@924404dff337 |
|
528 | my b@ecf3cb2a4219+ other a@2b958612230f ancestor a@924404dff337 | |
|
529 | premerge successful | |||
489 | getting c |
|
530 | getting c | |
|
531 | picked tool 'python ../merge' for rev (binary False symlink False) | |||
490 | merging rev |
|
532 | merging rev | |
491 | my rev@ecf3cb2a4219+ other rev@2b958612230f ancestor rev@924404dff337 |
|
533 | my rev@ecf3cb2a4219+ other rev@2b958612230f ancestor rev@924404dff337 | |
492 | 1 files updated, 2 files merged, 0 files removed, 0 files unresolved |
|
534 | 1 files updated, 2 files merged, 0 files removed, 0 files unresolved |
@@ -22,6 +22,7 b' resolving manifests' | |||||
22 | b |
|
22 | b | |
23 | a: versions differ -> m |
|
23 | a: versions differ -> m | |
24 | b: remote created -> g |
|
24 | b: remote created -> g | |
|
25 | picked tool 'true' for a (binary False symlink False) | |||
25 | merging a |
|
26 | merging a | |
26 | my a@33aaa84a386b+ other a@802f095af299 ancestor a@33aaa84a386b |
|
27 | my a@33aaa84a386b+ other a@802f095af299 ancestor a@33aaa84a386b | |
27 | getting b |
|
28 | getting b | |
@@ -58,6 +59,7 b' resolving manifests' | |||||
58 | b |
|
59 | b | |
59 | a: versions differ -> m |
|
60 | a: versions differ -> m | |
60 | b: remote created -> g |
|
61 | b: remote created -> g | |
|
62 | picked tool 'true' for a (binary False symlink False) | |||
61 | merging a |
|
63 | merging a | |
62 | my a@33aaa84a386b+ other a@802f095af299 ancestor a@33aaa84a386b |
|
64 | my a@33aaa84a386b+ other a@802f095af299 ancestor a@33aaa84a386b | |
63 | getting b |
|
65 | getting b | |
@@ -109,8 +111,10 b' resolving manifests' | |||||
109 | searching for copies back to rev 1 |
|
111 | searching for copies back to rev 1 | |
110 | a: versions differ -> m |
|
112 | a: versions differ -> m | |
111 | b: versions differ -> m |
|
113 | b: versions differ -> m | |
|
114 | picked tool 'true' for a (binary False symlink False) | |||
112 | merging a |
|
115 | merging a | |
113 | my a@802f095af299+ other a@030602aee63d ancestor a@33aaa84a386b |
|
116 | my a@802f095af299+ other a@030602aee63d ancestor a@33aaa84a386b | |
|
117 | picked tool 'true' for b (binary False symlink False) | |||
114 | merging b |
|
118 | merging b | |
115 | my b@802f095af299+ other b@030602aee63d ancestor b@000000000000 |
|
119 | my b@802f095af299+ other b@030602aee63d ancestor b@000000000000 | |
116 | 0 files updated, 2 files merged, 0 files removed, 0 files unresolved |
|
120 | 0 files updated, 2 files merged, 0 files removed, 0 files unresolved |
General Comments 0
You need to be logged in to leave comments.
Login now