comparison hgext/transplant.py @ 3725:ccc7a9eb0e5e

transplant: preserve filter changes in --continue log
author Brendan Cully <brendan@kublai.com>
date Thu, 30 Nov 2006 11:32:40 -0800
parents ea523d6f5f1a
children 752884db5037
comparison
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 = []