Mercurial > public > mercurial-scm > hg-stable
comparison mercurial/commands.py @ 5568:de620356064f
backout: disallow across branches (issue655)
author | Matt Mackall <mpm@selenic.com> |
---|---|
date | Sat, 01 Dec 2007 13:09:27 -0600 |
parents | 253736bb0dc9 |
children | e2da5b340651 |
comparison
equal
deleted
inserted
replaced
5567:56e9f7b2d8fa | 5568:de620356064f |
---|---|
192 cmdutil.bail_if_changed(repo) | 192 cmdutil.bail_if_changed(repo) |
193 op1, op2 = repo.dirstate.parents() | 193 op1, op2 = repo.dirstate.parents() |
194 if op2 != nullid: | 194 if op2 != nullid: |
195 raise util.Abort(_('outstanding uncommitted merge')) | 195 raise util.Abort(_('outstanding uncommitted merge')) |
196 node = repo.lookup(rev) | 196 node = repo.lookup(rev) |
197 | |
198 a = repo.changelog.ancestor(op1, node) | |
199 if a != node: | |
200 raise util.Abort(_('cannot back out change on a different branch')) | |
201 | |
197 p1, p2 = repo.changelog.parents(node) | 202 p1, p2 = repo.changelog.parents(node) |
198 if p1 == nullid: | 203 if p1 == nullid: |
199 raise util.Abort(_('cannot back out a change with no parents')) | 204 raise util.Abort(_('cannot back out a change with no parents')) |
200 if p2 != nullid: | 205 if p2 != nullid: |
201 if not opts['parent']: | 206 if not opts['parent']: |
208 parent = p | 213 parent = p |
209 else: | 214 else: |
210 if opts['parent']: | 215 if opts['parent']: |
211 raise util.Abort(_('cannot use --parent on non-merge changeset')) | 216 raise util.Abort(_('cannot use --parent on non-merge changeset')) |
212 parent = p1 | 217 parent = p1 |
218 | |
213 hg.clean(repo, node, show_stats=False) | 219 hg.clean(repo, node, show_stats=False) |
214 revert_opts = opts.copy() | 220 revert_opts = opts.copy() |
215 revert_opts['date'] = None | 221 revert_opts['date'] = None |
216 revert_opts['all'] = True | 222 revert_opts['all'] = True |
217 revert_opts['rev'] = hex(parent) | 223 revert_opts['rev'] = hex(parent) |