Mercurial > hg > evolve
view tests/test-topic-shelve.t @ 6770:d2b90c9e5829 stable
uncommit: set uncommit_source extra consistently in interactive mode
Previously, the uncommit_source extra was only explicitly set on the temporary
changeset created during the uncommit command.
Due to a contract mismatch because the extra() method returned a dict that
might be reused for multiple callers and this call site expected a fresh dict,
the resulting changeset produced by the uncommit command might or might not
have had the correct extra nonetheless. This changeset ensures that it will be
set consistently.
There is a discussion whether the extra() method (in core) should always return
a fresh dict. Independent of the outcome of the discussion, this fix should
work. I checked that the tests work no matter whether extra() returns a fresh
dict or a reused one (current core behavior).
author | Manuel Jacob <me@manueljacob.de> |
---|---|
date | Thu, 01 Feb 2024 19:13:24 +0100 |
parents | fb4801478d5d |
children | 9da0114a8a02 |
line wrap: on
line source
testing topic with shelve extension ------------------------------------ $ . "$TESTDIR/testlib/topic_setup.sh" $ hg init repo $ cd repo $ cat <<EOF >>.hg/hgrc > [extensions] > shelve= > EOF $ touch a $ echo "Hello" >> a $ hg topic "testing-shelve" marked working directory as topic: testing-shelve $ hg topic * testing-shelve (0 changesets) $ hg ci -m "First commit" -A adding a active topic 'testing-shelve' grew its first changeset (see 'hg help topics' for more information) $ hg topic * testing-shelve (1 changesets) $ echo " World" >> a $ hg stack ### topic: testing-shelve ### target: default (branch) s1@ First commit (current) shelve test ----------- $ hg shelve shelved as default 1 files updated, 0 files merged, 0 files removed, 0 files unresolved $ hg topic * testing-shelve (1 changesets) $ hg stack ### topic: testing-shelve ### target: default (branch) s1@ First commit (current) unshelve test ------------- $ hg unshelve unshelving change 'default' $ hg topic * testing-shelve (1 changesets) $ hg stack ### topic: testing-shelve ### target: default (branch) s1@ First commit (current)