equal
deleted
inserted
replaced
90 def save(self): |
90 def save(self): |
91 lock = self.repo.lock() |
91 lock = self.repo.lock() |
92 |
92 |
93 if not os.path.isdir(self.path): |
93 if not os.path.isdir(self.path): |
94 os.mkdir(self.path) |
94 os.mkdir(self.path) |
95 fd = self.opener('status', 'wb') |
95 statusfile = self.opener('status', 'wb') |
96 |
96 |
97 out = [hex(n.node()) for n in self.parents] |
97 out = [hex(n.node()) for n in self.parents] |
98 out.append(str(len(self.conflicts))) |
98 out.append(str(len(self.conflicts))) |
99 for f in sorted(self.conflicts): |
99 conflicts = self.conflicts.items() |
100 out.append(f) |
100 conflicts.sort() |
101 out.extend(self.conflicts[f]) |
101 for fw, fd_fo in conflicts: |
|
102 out.append(fw) |
|
103 out.extend(fd_fo) |
102 out.extend(self.resolved) |
104 out.extend(self.resolved) |
103 |
105 |
104 fd.write('\0'.join(out)) |
106 statusfile.write('\0'.join(out)) |
105 |
107 |
106 def remaining(self): |
108 def remaining(self): |
107 return [f for f in self.conflicts if f not in self.resolved] |
109 return [f for f in self.conflicts if f not in self.resolved] |
108 |
110 |
109 def filemerge(self, fn): |
111 def filemerge(self, fn): |
162 resolved = dict.fromkeys(self.resolved) |
164 resolved = dict.fromkeys(self.resolved) |
163 for fn in files: |
165 for fn in files: |
164 if fn not in self.conflicts: |
166 if fn not in self.conflicts: |
165 raise util.Abort('%s is not in the merge set' % fn) |
167 raise util.Abort('%s is not in the merge set' % fn) |
166 resolved[fn] = True |
168 resolved[fn] = True |
167 self.resolved = sorted(resolved) |
169 self.resolved = resolved.keys() |
|
170 self.resolved.sort() |
168 self.save() |
171 self.save() |
169 return 0 |
172 return 0 |
170 |
173 |
171 def unresolve(self, files): |
174 def unresolve(self, files): |
172 resolved = dict.fromkeys(self.resolved) |
175 resolved = dict.fromkeys(self.resolved) |
173 for fn in files: |
176 for fn in files: |
174 if fn not in resolved: |
177 if fn not in resolved: |
175 raise util.Abort('%s is not resolved' % fn) |
178 raise util.Abort('%s is not resolved' % fn) |
176 del resolved[fn] |
179 del resolved[fn] |
177 self.resolved = sorted(resolved) |
180 self.resolved = resolved.keys() |
|
181 self.resolved.sort() |
178 self.save() |
182 self.save() |
179 return 0 |
183 return 0 |
180 |
184 |
181 def pickle(self, dest): |
185 def pickle(self, dest): |
182 '''write current merge state to file to be resumed elsewhere''' |
186 '''write current merge state to file to be resumed elsewhere''' |
262 c, args = args[0], args[1:] |
266 c, args = args[0], args[1:] |
263 cmd = complete(c, subcmdtable.keys()) |
267 cmd = complete(c, subcmdtable.keys()) |
264 if not cmd: |
268 if not cmd: |
265 raise cmdutil.UnknownCommand('imerge ' + c) |
269 raise cmdutil.UnknownCommand('imerge ' + c) |
266 if len(cmd) > 1: |
270 if len(cmd) > 1: |
267 raise cmdutil.AmbiguousCommand('imerge ' + c, sorted(cmd)) |
271 cmd.sort() |
|
272 raise cmdutil.AmbiguousCommand('imerge ' + c, cmd) |
268 cmd = cmd[0] |
273 cmd = cmd[0] |
269 |
274 |
270 func = subcmdtable[cmd] |
275 func = subcmdtable[cmd] |
271 try: |
276 try: |
272 return func(im, *args) |
277 return func(im, *args) |