[PATCH 5 of 5] histedit: do not stay on a cleaned nodes on abort
Laurent Charignon
lcharignon at fb.com
Mon Aug 3 23:29:10 UTC 2015
This series looks good to me and seems to fix the issues that we have been seeing using histedit with evolve.
I talked to you offline about a test case that used to not work and that this series is fixing, let's add it to make sure that we don't regress.
Thanks,
Laurent
> On Aug 3, 2015, at 2:25 PM, Pierre-Yves David <pierre-yves.david at ens-lyon.org> wrote:
>
> # HG changeset patch
> # User Pierre-Yves David <pierre-yves.david at fb.com>
> # Date 1438607585 25200
> # Mon Aug 03 06:13:05 2015 -0700
> # Node ID ab1f4da158c6950ed6b8eb645c5a634ec169f55a
> # Parent ec0875fa682acd025a41471438c64041a37a2f82
> histedit: do not stay on a cleaned nodes on abort
>
> There is case where nodes are neither in tmpnodes nor leaf but still get
> removed. For example, if you used the "edit" action, made a commit and run
> --abort. The commit you made is not tracked by histedit, yet it will likely be
> cleaned up with its parent. The commit may not tracked because no replacements
> computations are done in the --abort case.
>
> diff --git a/hgext/histedit.py b/hgext/histedit.py
> --- a/hgext/histedit.py
> +++ b/hgext/histedit.py
> @@ -789,11 +789,11 @@ def _histedit(ui, repo, state, *freeargs
> changegroup.addchangegroup(repo, gen, 'histedit',
> 'bundle:' + backupfile)
> os.remove(backupfile)
>
> # check whether we should update away
> - if repo.unfiltered().revs('parents() and (%n or %ln)',
> + if repo.unfiltered().revs('parents() and (%n or %ln::)',
> state.parentctxnode, leafs | tmpnodes):
> hg.clean(repo, state.topmost)
> cleanupnode(ui, repo, 'created', tmpnodes)
> cleanupnode(ui, repo, 'temp', leafs)
> state.clear()
> _______________________________________________
> Mercurial-devel mailing list
> Mercurial-devel at selenic.com
> https://selenic.com/mailman/listinfo/mercurial-devel
More information about the Mercurial-devel
mailing list