[PATCH 4 of 4 evolve-ext] metaedit: use faster setparents instead of full update
Mateusz Kwapich
mitrandir at fb.com
Wed Nov 16 14:56:06 EST 2016
# HG changeset patch
# User Mateusz Kwapich <mitrandir at fb.com>
# Date 1479325623 0
# Wed Nov 16 19:47:03 2016 +0000
# Branch stable
# Node ID 539a0ff6a3d6664c2dd1fede40ba8e3e2efa9986
# Parent a10be4e9e682615db89200fbfb9583eaf5e05021
metaedit: use faster setparents instead of full update
The working copy is not changing so there is no need to extra status call.
This makes metaedit work on dirty wc.
diff --git a/hgext/evolve.py b/hgext/evolve.py
--- a/hgext/evolve.py
+++ b/hgext/evolve.py
@@ -3304,7 +3304,7 @@ def metaedit(ui, repo, *revs, **opts):
if opts['fold']:
ui.status('%i changesets folded\n' % len(revs))
if newp1 is not None:
- hg.update(repo, newp1)
+ repo.setparents(newp1)
finally:
lockmod.release(lock, wlock)
diff --git a/tests/test-evolve.t b/tests/test-evolve.t
--- a/tests/test-evolve.t
+++ b/tests/test-evolve.t
@@ -1489,7 +1489,6 @@ check that metaedit respects allowunstab
abort: cannot fold chain not ending with a head or with branching
[255]
$ hg metaedit --user foobar
- 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ hg log --template '{rev}: {author}\n' -r '42:' --hidden
42: test
43: foobar
@@ -1497,7 +1496,6 @@ check that metaedit respects allowunstab
43: foobar
$ HGEDITOR="sed -i'' -e 's/safely/quickly/g'" hg metaedit '.^::.'
- 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ HGEDITOR=cat hg metaedit '.^::.' --fold
HG: This is a fold of 2 changesets.
@@ -1519,7 +1517,6 @@ check that metaedit respects allowunstab
HG: changed a
HG: changed newfile
2 changesets folded
- 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ glog -r .
@ 45:ca7a9e928b25 at default(draft) amended
@@ -1553,7 +1550,6 @@ no new commit is created here because th
TODO: don't create a new commit in this case
$ hg metaedit --config defaults.metaedit=
- 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ hg log -r '.^::.' --template '{rev}: {desc|firstline}\n'
36: add uu
46: amended
@@ -1570,8 +1566,11 @@ TODO: don't create a new commit in this
47: foobar2
$ hg diff -r 45 -r 46 --hidden
-'fold' one commit
+'fold' one commit with dirty wc
+ $ echo x > newfile
$ hg metaedit 39 --fold --user foobar3
1 changesets folded
$ hg log -r 47 --template '{rev}: {author}\n'
47: foobar2
+ $ hg st -amr
+ M newfile
More information about the Mercurial-devel
mailing list