diff tests/test-topic-issue6406.t @ 6685:780ead5f65e5 mercurial-5.8

test-compat: merge mercurial-5.9 into mercurial-5.8
author Anton Shestakov <av6@dwimlabs.net>
date Sun, 04 Feb 2024 16:28:20 -0300
parents 81fe0a498447
children 9da0114a8a02 195941260a67
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/test-topic-issue6406.t	Sun Feb 04 16:28:20 2024 -0300
@@ -0,0 +1,104 @@
+hg pick with no active topic and with a different active topic (issue6406)
+https://bz.mercurial-scm.org/show_bug.cgi?id=6406
+For prior discussions on this behavior see also
+https://foss.heptapod.net/mercurial/evolve/-/merge_requests/313
+https://foss.heptapod.net/mercurial/evolve/-/merge_requests/390
+
+  $ . "$TESTDIR/testlib/common.sh"
+
+  $ cat << EOF >> "$HGRCPATH"
+  > [phases]
+  > publish = no
+  > [extensions]
+  > evolve =
+  > topic =
+  > EOF
+
+#testcases inmemory ondisk
+#if inmemory
+  $ cat >> $HGRCPATH <<EOF
+  > [experimental]
+  > evolution.in-memory = yes
+  > EOF
+#endif
+
+  $ hg init issue6406
+  $ cd issue6406
+
+  $ mkcommit ROOT
+
+  $ hg debug-topic-namespace aaa
+  marked working directory as topic namespace: aaa
+  $ hg topic a-things
+  marked working directory as topic: a-things
+  $ mkcommit apple
+  active topic 'a-things' grew its first changeset
+  (see 'hg help topics' for more information)
+
+  $ hg up 'desc("ROOT")'
+  0 files updated, 0 files merged, 1 files removed, 0 files unresolved
+  $ hg debug-topic-namespace bbb
+  marked working directory as topic namespace: bbb
+  $ hg topic b-things
+  marked working directory as topic: b-things
+  $ mkcommit banana
+  active topic 'b-things' grew its first changeset
+  (see 'hg help topics' for more information)
+  $ mkcommit blackberry
+
+  $ hg up 'desc("apple")'
+  switching to topic-namespace aaa
+  switching to topic a-things
+  1 files updated, 0 files merged, 2 files removed, 0 files unresolved
+
+This is what the help text says about this issue
+
+  $ hg help pick | grep 'active topic'
+      The resulting changeset will have the current active topic. If there's no
+      active topic set, the resulting changeset will also not have any topic.
+
+wdir has no active topic: pick should clear topic of the resulting cset
+
+  $ hg debug-topic-namespace --clear
+  $ hg topic --clear
+  $ hg pick 'desc("banana")'
+  picking 2:fcda3d8dafd2 "banana"
+  1 new orphan changesets
+  $ hg log -r . -T '{rev}: {desc} ({fqbn})\n'
+  4: banana (default)
+  $ hg debug-topic-namespace
+  none
+  $ hg topic --current
+  no active topic
+  [1]
+
+wdir has active topic: pick should use the active topic for the resulting cset
+
+  $ hg debug-topic-namespace everything
+  marked working directory as topic namespace: everything
+  $ hg topic all-things
+  marked working directory as topic: all-things
+  $ hg pick 'desc("blackberry")'
+  picking 3:48bbfbece8fa "blackberry"
+  active topic 'all-things' grew its first changeset
+  (see 'hg help topics' for more information)
+  $ hg log -r . -T '{rev}: {desc} ({fqbn})\n'
+  5: blackberry (default//everything/all-things)
+  $ hg debug-topic-namespace
+  everything
+  $ hg topic --current
+  all-things
+
+  $ hg log -GT '{rev}: {desc} ({fqbn})\n{join(extras, " ")}\n\n'
+  @  5: blackberry (default//everything/all-things)
+  |  branch=default topic=all-things topic-namespace=everything
+  |
+  o  4: banana (default)
+  |  branch=default
+  |
+  o  1: apple (default//aaa/a-things)
+  |  branch=default topic=a-things topic-namespace=aaa
+  |
+  o  0: ROOT (default)
+     branch=default
+