annotate tests/test-topic-shell-prompt.t @ 6224:17ffdea0edbb stable

evolve: look for split successors of the correct ancestor (issue6648) Consider two changesets, 1 and 2. 1 is split into two new changesets and 2 is pruned. If we stand on 2 and call hg evolve, _singlesuccessor() will traverse ancestors of wdp in search of a changeset with successors to update to (it will be 1, which was split). In case of a split, select_split_successor() gets control. The issue is this function didn't traverse ancestors, and instead tried to look up successors of the original changeset (i.e. 2 in our case, which was pruned). We can make select_split_successor() aware of _singlesuccessor() logic by using the changeset that actually has successors without traversing ancestors again. It's done by storing that changeset in MultipleSuccessorsError exception.
author Anton Shestakov <av6@dwimlabs.net>
date Thu, 21 Apr 2022 22:19:27 +0400
parents ce5ebd9c859b
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
5373
ce5ebd9c859b tests: add a test determining the branch and topic like the Zsh prompt does it
Manuel Jacob <me@manueljacob.de>
parents:
diff changeset
1 $ . $TESTDIR/testlib/topic_setup.sh
ce5ebd9c859b tests: add a test determining the branch and topic like the Zsh prompt does it
Manuel Jacob <me@manueljacob.de>
parents:
diff changeset
2
ce5ebd9c859b tests: add a test determining the branch and topic like the Zsh prompt does it
Manuel Jacob <me@manueljacob.de>
parents:
diff changeset
3 Code logically equivalent to the following is used in Zsh to show the branch
ce5ebd9c859b tests: add a test determining the branch and topic like the Zsh prompt does it
Manuel Jacob <me@manueljacob.de>
parents:
diff changeset
4 and topic (if set) in the prompt. If the format of the files is changed in a
ce5ebd9c859b tests: add a test determining the branch and topic like the Zsh prompt does it
Manuel Jacob <me@manueljacob.de>
parents:
diff changeset
5 way that it breaks the test, a mail should be sent to zsh-workers@zsh.org.
ce5ebd9c859b tests: add a test determining the branch and topic like the Zsh prompt does it
Manuel Jacob <me@manueljacob.de>
parents:
diff changeset
6
ce5ebd9c859b tests: add a test determining the branch and topic like the Zsh prompt does it
Manuel Jacob <me@manueljacob.de>
parents:
diff changeset
7 $ get_branch_like_zsh() {
ce5ebd9c859b tests: add a test determining the branch and topic like the Zsh prompt does it
Manuel Jacob <me@manueljacob.de>
parents:
diff changeset
8 > branchfile=".hg/branch"
ce5ebd9c859b tests: add a test determining the branch and topic like the Zsh prompt does it
Manuel Jacob <me@manueljacob.de>
parents:
diff changeset
9 > topicfile=".hg/topic"
ce5ebd9c859b tests: add a test determining the branch and topic like the Zsh prompt does it
Manuel Jacob <me@manueljacob.de>
parents:
diff changeset
10 > if [ -r "${branchfile}" ] ; then
ce5ebd9c859b tests: add a test determining the branch and topic like the Zsh prompt does it
Manuel Jacob <me@manueljacob.de>
parents:
diff changeset
11 > r_branch=$(cat "${branchfile}")
ce5ebd9c859b tests: add a test determining the branch and topic like the Zsh prompt does it
Manuel Jacob <me@manueljacob.de>
parents:
diff changeset
12 > fi
ce5ebd9c859b tests: add a test determining the branch and topic like the Zsh prompt does it
Manuel Jacob <me@manueljacob.de>
parents:
diff changeset
13 > if [ -f "${topicfile}" ] && [ -r "${topicfile}" ] && [ -s "${topicfile}" ] ; then
ce5ebd9c859b tests: add a test determining the branch and topic like the Zsh prompt does it
Manuel Jacob <me@manueljacob.de>
parents:
diff changeset
14 > IFS= read -r REPLY < ${topicfile}
ce5ebd9c859b tests: add a test determining the branch and topic like the Zsh prompt does it
Manuel Jacob <me@manueljacob.de>
parents:
diff changeset
15 > r_branch=${r_branch}:${REPLY}
ce5ebd9c859b tests: add a test determining the branch and topic like the Zsh prompt does it
Manuel Jacob <me@manueljacob.de>
parents:
diff changeset
16 > fi
ce5ebd9c859b tests: add a test determining the branch and topic like the Zsh prompt does it
Manuel Jacob <me@manueljacob.de>
parents:
diff changeset
17 > echo $r_branch
ce5ebd9c859b tests: add a test determining the branch and topic like the Zsh prompt does it
Manuel Jacob <me@manueljacob.de>
parents:
diff changeset
18 > }
ce5ebd9c859b tests: add a test determining the branch and topic like the Zsh prompt does it
Manuel Jacob <me@manueljacob.de>
parents:
diff changeset
19
ce5ebd9c859b tests: add a test determining the branch and topic like the Zsh prompt does it
Manuel Jacob <me@manueljacob.de>
parents:
diff changeset
20 $ hg init
ce5ebd9c859b tests: add a test determining the branch and topic like the Zsh prompt does it
Manuel Jacob <me@manueljacob.de>
parents:
diff changeset
21 $ hg branch branch -q
ce5ebd9c859b tests: add a test determining the branch and topic like the Zsh prompt does it
Manuel Jacob <me@manueljacob.de>
parents:
diff changeset
22 $ get_branch_like_zsh
ce5ebd9c859b tests: add a test determining the branch and topic like the Zsh prompt does it
Manuel Jacob <me@manueljacob.de>
parents:
diff changeset
23 branch
ce5ebd9c859b tests: add a test determining the branch and topic like the Zsh prompt does it
Manuel Jacob <me@manueljacob.de>
parents:
diff changeset
24 $ hg topic topic -q
ce5ebd9c859b tests: add a test determining the branch and topic like the Zsh prompt does it
Manuel Jacob <me@manueljacob.de>
parents:
diff changeset
25 $ get_branch_like_zsh
ce5ebd9c859b tests: add a test determining the branch and topic like the Zsh prompt does it
Manuel Jacob <me@manueljacob.de>
parents:
diff changeset
26 branch:topic
ce5ebd9c859b tests: add a test determining the branch and topic like the Zsh prompt does it
Manuel Jacob <me@manueljacob.de>
parents:
diff changeset
27 $ hg topic --clear -q
ce5ebd9c859b tests: add a test determining the branch and topic like the Zsh prompt does it
Manuel Jacob <me@manueljacob.de>
parents:
diff changeset
28 $ get_branch_like_zsh
ce5ebd9c859b tests: add a test determining the branch and topic like the Zsh prompt does it
Manuel Jacob <me@manueljacob.de>
parents:
diff changeset
29 branch