hgext/transplant.py
changeset 3725 ccc7a9eb0e5e
parent 3724 ea523d6f5f1a
child 3726 752884db5037
equal deleted inserted replaced
3724:ea523d6f5f1a 3725:ccc7a9eb0e5e
   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 = []