Mercurial > public > mercurial-scm > hg-stable
comparison mercurial/commands.py @ 21980:f4e5753745e9
graft: make --force apply across continues (issue3220)
Since --force determines the list of revisions to be grafted, it doesn't really
make sense for users to have to keep typing --force --continue as they continue
grafting.
author | Siddharth Agarwal <sid0@fb.com> |
---|---|
date | Sat, 26 Jul 2014 14:54:36 -0700 |
parents | c2863cfe8a8a |
children | 48166e46f111 |
comparison
equal
deleted
inserted
replaced
21979:c2863cfe8a8a | 21980:f4e5753745e9 |
---|---|
3087 Once all conflicts are addressed, the graft process can be | 3087 Once all conflicts are addressed, the graft process can be |
3088 continued with the -c/--continue option. | 3088 continued with the -c/--continue option. |
3089 | 3089 |
3090 .. note:: | 3090 .. note:: |
3091 | 3091 |
3092 The -c/--continue option does not reapply earlier options. | 3092 The -c/--continue option does not reapply earlier options, except |
3093 for --force. | |
3093 | 3094 |
3094 .. container:: verbose | 3095 .. container:: verbose |
3095 | 3096 |
3096 Examples: | 3097 Examples: |
3097 | 3098 |
3153 ui.warn(_('skipping ungraftable merge revision %s\n') % rev) | 3154 ui.warn(_('skipping ungraftable merge revision %s\n') % rev) |
3154 revs.remove(rev) | 3155 revs.remove(rev) |
3155 if not revs: | 3156 if not revs: |
3156 return -1 | 3157 return -1 |
3157 | 3158 |
3158 # check for ancestors of dest branch | 3159 # Don't check in the --continue case, in effect retaining --force across |
3159 if not opts.get('force'): | 3160 # --continues. That's because without --force, any revisions we decided to |
3161 # skip would have been filtered out here, so they wouldn't have made their | |
3162 # way to the graftstate. With --force, any revisions we would have otherwise | |
3163 # skipped would not have been filtered out, and if they hadn't been applied | |
3164 # already, they'd have been in the graftstate. | |
3165 if not (cont or opts.get('force')): | |
3166 # check for ancestors of dest branch | |
3160 crev = repo['.'].rev() | 3167 crev = repo['.'].rev() |
3161 ancestors = repo.changelog.ancestors([crev], inclusive=True) | 3168 ancestors = repo.changelog.ancestors([crev], inclusive=True) |
3162 # Cannot use x.remove(y) on smart set, this has to be a list. | 3169 # Cannot use x.remove(y) on smart set, this has to be a list. |
3163 # XXX make this lazy in the future | 3170 # XXX make this lazy in the future |
3164 revs = list(revs) | 3171 revs = list(revs) |