view 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
line wrap: on
line source

  $ . $TESTDIR/testlib/topic_setup.sh

Code logically equivalent to the following is used in Zsh to show the branch
and topic (if set) in the prompt. If the format of the files is changed in a
way that it breaks the test, a mail should be sent to zsh-workers@zsh.org.

  $ get_branch_like_zsh() {
  >     branchfile=".hg/branch"
  >     topicfile=".hg/topic"
  >     if [ -r "${branchfile}" ] ; then
  >         r_branch=$(cat "${branchfile}")
  >     fi
  >     if [ -f "${topicfile}" ] && [ -r "${topicfile}" ] && [ -s "${topicfile}" ] ; then
  >         IFS= read -r REPLY < ${topicfile}
  >         r_branch=${r_branch}:${REPLY}
  >     fi
  >     echo $r_branch
  > }

  $ hg init
  $ hg branch branch -q
  $ get_branch_like_zsh
  branch
  $ hg topic topic -q
  $ get_branch_like_zsh
  branch:topic
  $ hg topic --clear -q
  $ get_branch_like_zsh
  branch