Mercurial > hg
comparison mercurial/commands.py @ 14610:5d6244930559
import: separate parents selection from working dir update
This will be useful when patching without updating the dirstate
author | Patrick Mezard <pmezard@gmail.com> |
---|---|
date | Tue, 14 Jun 2011 23:24:40 +0200 |
parents | b1a534335548 |
children | adbf5e7df96d |
comparison
equal
deleted
inserted
replaced
14609:f53dc0787424 | 14610:5d6244930559 |
---|---|
3085 # launch the editor | 3085 # launch the editor |
3086 message = None | 3086 message = None |
3087 ui.debug('message:\n%s\n' % message) | 3087 ui.debug('message:\n%s\n' % message) |
3088 | 3088 |
3089 wp = repo.parents() | 3089 wp = repo.parents() |
3090 if len(wp) == 1: | |
3091 wp.append(repo[nullid]) | |
3090 if opts.get('exact'): | 3092 if opts.get('exact'): |
3091 if not nodeid or not p1: | 3093 if not nodeid or not p1: |
3092 raise util.Abort(_('not a Mercurial patch')) | 3094 raise util.Abort(_('not a Mercurial patch')) |
3093 p1 = repo.lookup(p1) | 3095 p1 = repo[p1] |
3094 p2 = repo.lookup(p2 or hex(nullid)) | 3096 p2 = repo[p2 or nullid] |
3095 | |
3096 if p1 != wp[0].node(): | |
3097 hg.clean(repo, p1) | |
3098 repo.dirstate.setparents(p1, p2) | |
3099 elif p2: | 3097 elif p2: |
3100 try: | 3098 try: |
3101 p1 = repo.lookup(p1) | 3099 p1 = repo[p1] |
3102 p2 = repo.lookup(p2) | 3100 p2 = repo[p2] |
3103 if p1 == wp[0].node(): | |
3104 repo.dirstate.setparents(p1, p2) | |
3105 except error.RepoError: | 3101 except error.RepoError: |
3106 pass | 3102 p1, p2 = wp |
3103 else: | |
3104 p1, p2 = wp | |
3105 | |
3106 if opts.get('exact') and p1 != wp[0]: | |
3107 hg.clean(repo, p1.node()) | |
3108 if p1 != wp[0] and p2 != wp[1]: | |
3109 repo.dirstate.setparents(p1.node(), p2.node()) | |
3110 | |
3107 if opts.get('exact') or opts.get('import_branch'): | 3111 if opts.get('exact') or opts.get('import_branch'): |
3108 repo.dirstate.setbranch(branch or 'default') | 3112 repo.dirstate.setbranch(branch or 'default') |
3109 | 3113 |
3110 files = set() | 3114 files = set() |
3111 patch.patch(ui, repo, tmpname, strip=strip, files=files, | 3115 patch.patch(ui, repo, tmpname, strip=strip, files=files, |