# HG changeset patch # User Pierre-Yves David # Date 1347364284 -7200 # Node ID 39eb12bb47c08203d2efbdd32922d8bce8b71300 # Parent e29561d918a6354a4558d23414036f5e5a5e88df commit --amend: adap to core 63e45aee46d4 commit is now able to create obsolete marker itself. We don't alter core if we detect it's the case. diff -r e29561d918a6 -r 39eb12bb47c0 hgext/evolve.py --- a/hgext/evolve.py Tue Sep 11 12:38:49 2012 +0200 +++ b/hgext/evolve.py Tue Sep 11 13:51:24 2012 +0200 @@ -988,27 +988,30 @@ # # The precursor is still strip from the repository. -@eh.wrapfunction(cmdutil, 'amend') -def wrapcmdutilamend(orig, ui, repo, commitfunc, old, *args, **kwargs): - oldnode = old.node() - new = orig(ui, repo, commitfunc, old, *args, **kwargs) - if new != oldnode: - lock = repo.lock() - try: - tr = repo.transaction('post-amend-obst') +# IN CORE 63e45aee46d4 + +if getattr(cmdutil, 'obsolete', None) is None: + @eh.wrapfunction(cmdutil, 'amend') + def wrapcmdutilamend(orig, ui, repo, commitfunc, old, *args, **kwargs): + oldnode = old.node() + new = orig(ui, repo, commitfunc, old, *args, **kwargs) + if new != oldnode: + lock = repo.lock() try: - meta = { - 'date': '%i %i' % util.makedate(), - 'user': ui.username(), - } - repo.obsstore.create(tr, oldnode, [new], 0, meta) - tr.close() - clearobscaches(repo) + tr = repo.transaction('post-amend-obst') + try: + meta = { + 'date': '%i %i' % util.makedate(), + 'user': ui.username(), + } + repo.obsstore.create(tr, oldnode, [new], 0, meta) + tr.close() + clearobscaches(repo) + finally: + tr.release() finally: - tr.release() - finally: - lock.release() - return new + lock.release() + return new ### rebase # diff -r e29561d918a6 -r 39eb12bb47c0 tests/test-obsolete.t --- a/tests/test-obsolete.t Tue Sep 11 12:38:49 2012 +0200 +++ b/tests/test-obsolete.t Tue Sep 11 13:51:24 2012 +0200 @@ -574,10 +574,9 @@ $ mkcommit f created new head $ echo 42 >> f - $ hg commit --amend --traceback - saved backup bundle to $TESTTMP/local/.hg/strip-backup/0b1b6dd009c0-amend-backup.hg + $ hg commit --amend --traceback --quiet $ hg glog - @ changeset: 13:3734a65252e6 + @ changeset: 1[35]:3734a65252e6 (re) | tag: tip | parent: 10:2033b4e49474 | user: test @@ -617,7 +616,7 @@ date: Thu Jan 01 00:00:00 1970 +0000 summary: add a - $ hg debugobsolete + $ hg debugobsolete | grep -v 33d458d86621f3186c40bfccd77652f4a122743e 4538525df7e2b9f09423636c61ef63a4cb872a2d 0d3f46688ccc6e756c7e96cf64c391c411309597 0 {'date': '', 'user': 'test'} (glob) 0d3f46688ccc6e756c7e96cf64c391c411309597 725c380fe99b5e76613493f0903e8d11ddc70d54 0 {'date': '', 'user': 'test'} (glob) a7a6f2b5d8a54b81bc7aa2fba2934ad6d700a79e 95de7fc6918dea4c9c8d5382f50649794b474c4a 0 {'date': '', 'user': 'test'} (glob) @@ -629,6 +628,8 @@ 159dfc9fa5d334d7e03a0aecfc7f7ab4c3431fea 9468a5f5d8b2c5d91e17474e95ae4791e9718fdf 0 {'date': '* *', 'user': 'test'} (glob) 9468a5f5d8b2c5d91e17474e95ae4791e9718fdf 6db5e282cb91df5c43ff1f1287c119ff83230d42 0 {'date': '', 'user': 'test'} (glob) 0b1b6dd009c037985363e2290a0b579819f659db 3734a65252e69ddcced85901647a4f335d40de1e 0 {'date': '* *', 'user': 'test'} (glob) +#no produced by 2.3 +33d458d86621f3186c40bfccd77652f4a122743e 3734a65252e69ddcced85901647a4f335d40de1e 0 {'date': '* *', 'user': 'test'} (glob) Check conflict detection @@ -636,15 +637,15 @@ 1 files updated, 0 files merged, 1 files removed, 0 files unresolved $ mkcommit "obsolet_conflicting_d" $ hg summary - parent: 14:50f11e5e3a63 tip + parent: 1[46]:50f11e5e3a63 tip (re) add obsolet_conflicting_d branch: default commit: (clean) - update: 9 new changesets, 9 branch heads (merge) + update: (9|11) new changesets, (9|10) branch heads \(merge\) (re) latecomer: 1 changesets $ hg debugobsolete `getid a7a6f2b5d8a5` `getid 50f11e5e3a63` $ hg log -r 'conflicting()' - changeset: 14:50f11e5e3a63 + changeset: 1[46]:50f11e5e3a63 (re) tag: tip parent: 11:9468a5f5d8b2 user: test