185 self.filter(filter, cl, patchfile) |
185 self.filter(filter, cl, patchfile) |
186 patchfile, message, user, date = patch.extract(self.ui, file(patchfile)) |
186 patchfile, message, user, date = patch.extract(self.ui, file(patchfile)) |
187 |
187 |
188 if log: |
188 if log: |
189 message += '\n(transplanted from %s)' % revlog.hex(node) |
189 message += '\n(transplanted from %s)' % revlog.hex(node) |
190 cl = list(cl) |
|
191 cl[4] = message |
|
192 |
190 |
193 self.ui.status(_('applying %s\n') % revlog.short(node)) |
191 self.ui.status(_('applying %s\n') % revlog.short(node)) |
194 self.ui.note('%s %s\n%s\n' % (user, date, message)) |
192 self.ui.note('%s %s\n%s\n' % (user, date, message)) |
195 |
193 |
196 if not patchfile and not merge: |
194 if not patchfile and not merge: |
209 except Exception, inst: |
207 except Exception, inst: |
210 if filter: |
208 if filter: |
211 os.unlink(patchfile) |
209 os.unlink(patchfile) |
212 p1 = repo.dirstate.parents()[0] |
210 p1 = repo.dirstate.parents()[0] |
213 p2 = node |
211 p2 = node |
214 self.log(cl, p1, p2, merge=merge) |
212 self.log(user, date, message, p1, p2, merge=merge) |
215 self.ui.write(str(inst) + '\n') |
213 self.ui.write(str(inst) + '\n') |
216 raise util.Abort(_('Fix up the merge and run hg transplant --continue')) |
214 raise util.Abort(_('Fix up the merge and run hg transplant --continue')) |
217 else: |
215 else: |
218 files = None |
216 files = None |
219 if merge: |
217 if merge: |
295 series.write('# Merges\n') |
293 series.write('# Merges\n') |
296 for m in merges: |
294 for m in merges: |
297 series.write(revlog.hex(m) + '\n') |
295 series.write(revlog.hex(m) + '\n') |
298 series.close() |
296 series.close() |
299 |
297 |
300 def log(self, changelog, p1, p2, merge=False): |
298 def log(self, user, date, message, p1, p2, merge=False): |
301 '''journal changelog metadata for later recover''' |
299 '''journal changelog metadata for later recover''' |
302 |
300 |
303 if not os.path.isdir(self.path): |
301 if not os.path.isdir(self.path): |
304 os.mkdir(self.path) |
302 os.mkdir(self.path) |
305 fp = self.opener('journal', 'w') |
303 fp = self.opener('journal', 'w') |
306 fp.write('# User %s\n' % changelog[1]) |
304 fp.write('# User %s\n' % user) |
307 fp.write('# Date %d %d\n' % changelog[2]) |
305 fp.write('# Date %s\n' % date) |
308 fp.write('# Node ID %s\n' % revlog.hex(p2)) |
306 fp.write('# Node ID %s\n' % revlog.hex(p2)) |
309 fp.write('# Parent ' + revlog.hex(p1) + '\n') |
307 fp.write('# Parent ' + revlog.hex(p1) + '\n') |
310 if merge: |
308 if merge: |
311 fp.write('# Parent ' + revlog.hex(p2) + '\n') |
309 fp.write('# Parent ' + revlog.hex(p2) + '\n') |
312 fp.write(changelog[4].rstrip() + '\n') |
310 fp.write(message.rstrip() + '\n') |
313 fp.close() |
311 fp.close() |
314 |
312 |
315 def readlog(self): |
313 def readlog(self): |
316 parents = [] |
314 parents = [] |
317 message = [] |
315 message = [] |