def apply_change(node, reverse, push_patch=True, name=None):
        p1, p2 = repo.changelog.parents(node)
        if p2 != nullid:
            raise util.Abort('cannot %s a merge changeset' % desc['action'])

        opts = mdiff.defaultopts
        opts.git = True
        rpatch = StringIO.StringIO()
        orig, mod = (node, p1) if reverse else (p1, node)
        for chunk in patch.diff(repo, node1=orig, node2=mod, opts=opts):
            rpatch.write(chunk)
        rpatch.seek(0)

        saved_stdin = None
        try:
            save_fin = ui.fin
            ui.fin = rpatch
        except:
            # Old versions of hg did not use the ui.fin mechanism
            saved_stdin = sys.stdin
            sys.stdin = rpatch

        if push_patch:
            commands.import_(ui, repo, '-',
                             force=True,
                             no_commit=True,
                             strip=1,
                             base='')
        else:
            mq.qimport(ui, repo, '-', name=name, rev=[], git=True)

        if saved_stdin is None:
            ui.fin = save_fin
        else:
            sys.stdin = saved_stdin
Пример #2
0
 def handle_change(desc, node, qimport=False):
     if qimport:
         name = compute_patch_name(desc['name'], opts.get('name'), node=node)
         mq.qimport(ui, repo, '-', name=name, rev=[], git=True)
     else:
         commands.import_(ui, repo, '-',
                          force=True,
                          no_commit=True,
                          strip=1,
                          base='',
                          prefix='',
                          obsolete=[])
Пример #3
0
 def handle_change(desc, node, qimport=False):
     if qimport:
         name = compute_patch_name(desc['name'], opts.get('name'), node=node)
         mq.qimport(ui, repo, '-', name=name, rev=[], git=True)
     else:
         commands.import_(ui, repo, '-',
                          force=True,
                          no_commit=True,
                          strip=1,
                          base='',
                          prefix='',
                          obsolete=[])
Пример #4
0
def qimport_wrapper(self, repo, *filename, **opts):
    mqmessage = opts.pop('mqmessage', None)
    mqcommit, q, r = mqcommit_info(self, repo, opts)

    mq.qimport(self, repo, *filename, **opts)

    if mqcommit and mqmessage:
        if len(filename) == 0:
            fname = q.full_series[0] # FIXME - can be multiple
        else:
            fname = filename[0] # FIXME - can be multiple
        mqmessage = mqmessage.replace("%p", fname)
        mqmessage = mqmessage.replace("%a", 'IMPORT')
        commands.commit(r.ui, r, message=mqmessage)
Пример #5
0
 def handle_change(desc, node, qimport=False):
     if qimport:
         name = compute_patch_name(desc["name"], opts.get("name"), node=node)
         mq.qimport(ui, repo, "-", name=name, rev=[], git=True)
     else:
         commands.import_(ui, repo, "-", force=True, no_commit=True, strip=1, base="", prefix="", obsolete=[])