Mercurial > evolve
view tests/test-discovery-hidden-common.t @ 5619:5673730db8d5 stable
evolve: clean merge state when content divergence resolution has no changes
This patch backs out b723805d7fe1, which only hid the problem.
Usually mergestate is cleared (or should be cleared) when creating a new
changeset, but sometimes there are situations when there's nothing to commit.
When solving content divergence resulted in no changes and no new changesets
were created, mergestate was left untouched. That's a problem because sometimes
mergestate contains files with conflicts that were already resolved by user,
and such mergestate only applies to the current wdir parent. Since evolve has
already dealt with the current wdir parent successfully when it reached this
code, this is a good place to clean the mergestate.
author | Anton Shestakov <av6@dwimlabs.net> |
---|---|
date | Sat, 19 Sep 2020 17:49:31 +0200 |
parents | a60a478ee2fa |
children | 35e769c9604f |
line wrap: on
line source
test for discovery with some remote changesets hidden locally ============================================================= $ . $TESTDIR/testlib/common.sh $ cat << EOF >> $HGRCPATH > [phases] > publish = false > [extensions] > evolve = > [experimental] > verbose-obsolescence-exchange = 1 > [ui] > logtemplate = "{rev} {node|short} {desc} {tags}\n" > ssh = "$PYTHON" "$RUNTESTDIR/dummyssh" > EOF $ hg init server $ hg clone ssh://user@dummy/server client no changes found updating to branch default 0 files updated, 0 files merged, 0 files removed, 0 files unresolved $ cd server $ mkcommit root $ mkcommit A0 second pull: $ hg -R ../client pull pulling from ssh://user@dummy/server requesting all changes adding changesets adding manifests adding file changes added 2 changesets with 2 changes to 2 files new changesets 1e4be0697311:8aaa48160adc (2 drafts) (run 'hg update' to get a working copy) $ hg -R ../client log -G o 1 8aaa48160adc A0 tip | o 0 1e4be0697311 root more update $ hg tag --local stay-visible $ hg up 0 0 files updated, 0 files merged, 1 files removed, 0 files unresolved $ mkcommit A1 created new head $ hg debugobsolete `getid 'desc(A0)'` `getid 'desc(A1)'` 1 new obsolescence markers obsoleted 1 changesets second pull: $ hg -R ../client pull pulling from ssh://user@dummy/server searching for changes OBSEXC: looking for common markers in 2 nodes adding changesets adding manifests adding file changes added 1 changesets with 1 changes to 1 files (+1 heads) 1 new obsolescence markers obsoleted 1 changesets new changesets f6082bc4ffef (1 drafts) (run 'hg heads' to see heads) $ hg -R ../client log -G o 2 f6082bc4ffef A1 tip | o 0 1e4be0697311 root more update: $ hg up 0 0 files updated, 0 files merged, 1 files removed, 0 files unresolved $ mkcommit A2 created new head $ hg debugobsolete `getid 'desc(A1)'` `getid 'desc(A2)'` 1 new obsolescence markers obsoleted 1 changesets third pull: $ hg -R ../client pull pulling from ssh://user@dummy/server searching for changes OBSEXC: looking for common markers in 1 nodes adding changesets adding manifests adding file changes added 1 changesets with 1 changes to 1 files (+1 heads) 1 new obsolescence markers obsoleted 1 changesets new changesets c1f8d089020f (1 drafts) (run 'hg heads' to see heads) $ hg -R ../client log -G o 3 c1f8d089020f A2 tip | o 0 1e4be0697311 root