Mercurial > evolve
changeset 701:f752089479ce stable
add a duplicate option in touch
author | Denis Laxalde <denis.laxalde@logilab.fr> |
---|---|
date | Fri, 08 Feb 2013 22:12:46 +0000 |
parents | ebcfd72e7609 |
children | b5a85a8909d3 |
files | README hgext/evolve.py tests/test-touch.t |
diffstat | 3 files changed, 17 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/README Fri Feb 08 22:09:42 2013 +0000 +++ b/README Fri Feb 08 22:12:46 2013 +0000 @@ -49,6 +49,7 @@ - prune: various minor improvements - amend: drop deprecated --change option for amend - alias: add a grab aliast to be used instead of graft -O +- touch: add a --duplicate option to *not* obsolete the old version 3.0.0 -- 2013-02-02
--- a/hgext/evolve.py Fri Feb 08 22:09:42 2013 +0000 +++ b/hgext/evolve.py Fri Feb 08 22:12:46 2013 +0000 @@ -1568,7 +1568,9 @@ lock.release() @command('^touch', - [('r', 'rev', [], 'revision to update'),], + [('r', 'rev', [], 'revision to update'), + ('D', 'duplicate', False, + 'do not mark the new revision as successor of the old one')], # allow to choose the seed ? _('[-r] revs')) def touch(ui, repo, *revs, **opts): @@ -1576,6 +1578,7 @@ This is used to "resurrect" changesets """ + duplicate = opts['duplicate'] revs = list(revs) revs.extend(opts['rev']) if not revs: @@ -1584,7 +1587,7 @@ if not revs: ui.write_err('no revision to touch\n') return 1 - if repo.revs('public() and %ld', revs): + if not duplicate and repo.revs('public() and %ld', revs): raise util.Abort("can't touch public revision") wlock = lock = None try: @@ -1599,7 +1602,8 @@ new, _ = rewrite(repo, ctx, [], ctx, [ctx.p1().node(), ctx.p2().node()], commitopts={'extra': extra}) - createmarkers(repo, [(ctx, (repo[new],))]) + if not duplicate: + createmarkers(repo, [(ctx, (repo[new],))]) phases.retractboundary(repo, ctx.phase(), [new]) if ctx in repo[None].parents(): repo.dirstate.setparents(new, node.nullid)