~ubuntu-branches/ubuntu/precise/mercurial/precise-security

« back to all changes in this revision

Viewing changes to hgext/transplant.py

  • Committer: Package Import Robot
  • Author(s): Javi Merino
  • Date: 2011-11-01 22:40:40 UTC
  • mfrom: (1.2.23) (9.1.5 experimental)
  • Revision ID: package-import@ubuntu.com-20111101224040-orz0h407s0f5vk09
Tags: 2.0-1
* New upstream release 2.0
* Don't include empty directories in the package

Show diffs side-by-side

added added

removed removed

Lines of Context:
81
81
        self.opener = scmutil.opener(self.path)
82
82
        self.transplants = transplants(self.path, 'transplants',
83
83
                                       opener=self.opener)
 
84
        self.editor = None
84
85
 
85
86
    def applied(self, repo, node, parent):
86
87
        '''returns True if a node is already an ancestor of parent
105
106
        diffopts = patch.diffopts(self.ui, opts)
106
107
        diffopts.git = True
107
108
 
108
 
        lock = wlock = None
 
109
        lock = wlock = tr = None
109
110
        try:
110
111
            wlock = repo.wlock()
111
112
            lock = repo.lock()
 
113
            tr = repo.transaction('transplant')
112
114
            for rev in revs:
113
115
                node = revmap[rev]
114
116
                revstr = '%s:%s' % (rev, short(node))
172
174
                    finally:
173
175
                        if patchfile:
174
176
                            os.unlink(patchfile)
 
177
            tr.close()
175
178
            if pulls:
176
179
                repo.pull(source, heads=pulls)
177
180
                merge.update(repo, pulls[-1], False, False, None)
178
181
        finally:
179
182
            self.saveseries(revmap, merges)
180
183
            self.transplants.write()
 
184
            if tr:
 
185
                tr.release()
181
186
            lock.release()
182
187
            wlock.release()
183
188
 
253
258
        else:
254
259
            m = match.exact(repo.root, '', files)
255
260
 
256
 
        n = repo.commit(message, user, date, extra=extra, match=m)
 
261
        n = repo.commit(message, user, date, extra=extra, match=m,
 
262
                        editor=self.editor)
257
263
        if not n:
258
264
            # Crash here to prevent an unclear crash later, in
259
265
            # transplants.write().  This can happen if patch.patch()
304
310
                                 revlog.hex(parents[0]))
305
311
            if merge:
306
312
                repo.dirstate.setparents(p1, parents[1])
307
 
            n = repo.commit(message, user, date, extra=extra)
 
313
            n = repo.commit(message, user, date, extra=extra,
 
314
                            editor=self.editor)
308
315
            if not n:
309
316
                raise util.Abort(_('commit failed'))
310
317
            if not merge:
461
468
    ('a', 'all', None, _('pull all changesets up to BRANCH')),
462
469
    ('p', 'prune', [], _('skip over REV'), _('REV')),
463
470
    ('m', 'merge', [], _('merge at REV'), _('REV')),
 
471
    ('e', 'edit', False, _('invoke editor on commit messages')),
464
472
    ('', 'log', None, _('append transplant info to log message')),
465
473
    ('c', 'continue', None, _('continue last transplant session '
466
474
                              'after repair')),
549
557
        opts['filter'] = ui.config('transplant', 'filter')
550
558
 
551
559
    tp = transplanter(ui, repo)
 
560
    if opts.get('edit'):
 
561
        tp.editor = cmdutil.commitforceeditor
552
562
 
553
563
    p1, p2 = repo.dirstate.parents()
554
564
    if len(repo) > 0 and p1 == revlog.nullid: