##// END OF EJS Templates
Update imerge for new filemerge interface
Brendan Cully -
r5054:ec70fd08 default
parent child Browse files
Show More
@@ -67,7 +67,7 b' class Imerge(object):'
67 67 def load(self):
68 68 # status format. \0-delimited file, fields are
69 69 # p1, p2, conflict count, conflict filenames, resolved filenames
70 # conflict filenames are pairs of localname, remotename
70 # conflict filenames are tuples of localname, remoteorig, remotenew
71 71
72 72 statusfile = self.opener('status')
73 73
@@ -81,10 +81,10 b' class Imerge(object):'
81 81 raise util.Abort('merge parent %s not in repository' % short(p))
82 82
83 83 status = status[2:]
84 conflicts = int(status.pop(0)) * 2
84 conflicts = int(status.pop(0)) * 3
85 85 self.resolved = status[conflicts:]
86 for i in xrange(0, conflicts, 2):
87 self.conflicts[status[i]] = status[i+1]
86 for i in xrange(0, conflicts, 3):
87 self.conflicts[status[i]] = (status[i+1], status[i+2])
88 88
89 89 def save(self):
90 90 lock = self.repo.lock()
@@ -97,7 +97,7 b' class Imerge(object):'
97 97 out.append(str(len(self.conflicts)))
98 98 for f in sorted(self.conflicts):
99 99 out.append(f)
100 out.append(self.conflicts[f])
100 out.extend(self.conflicts[f])
101 101 out.extend(self.resolved)
102 102
103 103 fd.write('\0'.join(out))
@@ -108,14 +108,14 b' class Imerge(object):'
108 108 def filemerge(self, fn):
109 109 wlock = self.repo.wlock()
110 110
111 fo = self.conflicts[fn]
112 return merge.filemerge(self.repo, fn, fo, self.parents[0],
111 (fd, fo) = self.conflicts[fn]
112 return merge.filemerge(self.repo, fn, fd, fo, self.parents[0],
113 113 self.parents[1])
114 114
115 115 def start(self, rev=None):
116 116 _filemerge = merge.filemerge
117 def filemerge(repo, fw, fo, wctx, mctx):
118 self.conflicts[fw] = fo
117 def filemerge(repo, fw, fd, fo, wctx, mctx):
118 self.conflicts[fw] = (fd, fo)
119 119
120 120 merge.filemerge = filemerge
121 121 commands.merge(self.ui, self.repo, rev=rev)
@@ -145,11 +145,11 b' class Imerge(object):'
145 145 if remaining:
146 146 self.ui.write('remaining:\n')
147 147 for fn in remaining:
148 fo = self.conflicts[fn]
148 (fd, fo) = self.conflicts[fn]
149 149 if fn == fo:
150 150 self.ui.write(' %s\n' % (fn,))
151 151 else:
152 self.ui.write(' %s (%s)\n' % (fn, fo))
152 self.ui.write(' %s (%s)\n' % (fn, fd))
153 153 else:
154 154 self.ui.write('all conflicts resolved\n')
155 155
General Comments 0
You need to be logged in to leave comments. Login now