Mercurial > hg > evolve
changeset 553:e29561d918a6 stable
createmarkers: adapt to f85816af6294 in core
The createmarkers function is now in core. Fallback on our function if not
available
author | Pierre-Yves David <pierre-yves.david@logilab.fr> |
---|---|
date | Tue, 11 Sep 2012 12:38:49 +0200 |
parents | f7e54d4a3b90 |
children | 39eb12bb47c0 |
files | hgext/evolve.py tests/test-evolve.t |
diffstat | 2 files changed, 35 insertions(+), 32 deletions(-) [+] |
line wrap: on
line diff
--- a/hgext/evolve.py +++ b/hgext/evolve.py @@ -623,40 +623,43 @@ # - function to find useful changeset to stabilize ### Marker Create - -def createmarkers(repo, relations, metadata=None, flag=0): - """Add obsolete markers between changeset in a repo +# NOW IN CORE f85816af6294 +try: + createmarkers = obsolete.createmarkers +except AttributeError: + def createmarkers(repo, relations, metadata=None, flag=0): + """Add obsolete markers between changeset in a repo - <relations> must be an iterable of (<old>, (<new>, ...)) tuple. - `old` and `news` are changectx. + <relations> must be an iterable of (<old>, (<new>, ...)) tuple. + `old` and `news` are changectx. - Current user and date are used except if specified otherwise in the - metadata attribute. + Current user and date are used except if specified otherwise in the + metadata attribute. - /!\ assume the repo have been locked by the user /!\ - """ - # prepare metadata - if metadata is None: - metadata = {} - if 'date' not in metadata: - metadata['date'] = '%i %i' % util.makedate() - if 'user' not in metadata: - metadata['user'] = repo.ui.username() - # check future marker - tr = repo.transaction('add-obsolescence-marker') - try: - for prec, sucs in relations: - if not prec.mutable(): - raise util.Abort("Cannot obsolete immutable changeset: %s" % prec) - nprec = prec.node() - nsucs = tuple(s.node() for s in sucs) - if nprec in nsucs: - raise util.Abort("Changeset %s cannot obsolete himself" % prec) - repo.obsstore.create(tr, nprec, nsucs, flag, metadata) - clearobscaches(repo) - tr.close() - finally: - tr.release() + /!\ assume the repo have been locked by the user /!\ + """ + # prepare metadata + if metadata is None: + metadata = {} + if 'date' not in metadata: + metadata['date'] = '%i %i' % util.makedate() + if 'user' not in metadata: + metadata['user'] = repo.ui.username() + # check future marker + tr = repo.transaction('add-obsolescence-marker') + try: + for prec, sucs in relations: + if not prec.mutable(): + raise util.Abort("cannot obsolete immutable changeset: %s" % prec) + nprec = prec.node() + nsucs = tuple(s.node() for s in sucs) + if nprec in nsucs: + raise util.Abort("changeset %s cannot obsolete himself" % prec) + repo.obsstore.create(tr, nprec, nsucs, flag, metadata) + clearobscaches(repo) + tr.close() + finally: + tr.release() ### Useful alias
--- a/tests/test-evolve.t +++ b/tests/test-evolve.t @@ -58,7 +58,7 @@ $ hg log -r 1 --template '{rev} {phase} {obsolete}\n' 1 public stable $ hg kill 1 - abort: Cannot obsolete immutable changeset: 7c3bad9141dc + abort: cannot obsolete immutable changeset: 7c3bad9141dc [255] $ hg log -r 1 --template '{rev} {phase} {obsolete}\n' 1 public stable