view tests/test-check-sdist.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 74665d83fb3b
children 318b81560f8c
line wrap: on
line source

Enable obsolescence to avoid the warning issue when obsmarkers are found

  $ cat << EOF >> "$HGRCPATH"
  > [experimental]
  > evolution = all
  > EOF

  $ cd "$TESTDIR"/..

Archiving to a separate location to avoid hardlink mess when the repo is shared

#if test-repo

  $ hg archive "$TESTTMP"/hg-evolve
  $ cd "$TESTTMP"/hg-evolve

#endif

  $ "$PYTHON" setup.py sdist --dist-dir "$TESTTMP"/dist > /dev/null
  */dist.py:*: UserWarning: Unknown distribution option: 'python_requires' (glob)
    warnings.warn(msg)
  warning: sdist: standard file not found: should have one of README, README.txt (?)
   (?)
  warning: no previously-included files found matching 'docs/tutorial/.netlify'
  warning: no previously-included files found matching '.gitlab-ci.yml'
  warning: no previously-included files found matching '.hg-format-source'
  warning: no previously-included files found matching 'Makefile'
  no previously-included directories found matching 'contrib'
  no previously-included directories found matching 'debian'
  no previously-included directories found matching '.gitlab'
  $ cd "$TESTTMP"/dist

  $ find hg-evolve-*.tar.gz -size +800000c
  hg-evolve-*.tar.gz (glob)

  $ tar -tzf hg-evolve-*.tar.gz | sed 's|^hg-evolve-[^/]*/||' | sort > files
  $ wc -l files
  357 files
  $ fgrep debian files
  tests/test-check-debian.t
  $ fgrep __init__.py files
  hgext3rd/__init__.py
  hgext3rd/evolve/__init__.py
  hgext3rd/evolve/thirdparty/__init__.py
  hgext3rd/topic/__init__.py
  $ fgrep common.sh files
  docs/tutorial/testlib/common.sh
  tests/testlib/common.sh
  $ fgrep README files
  README.rst
  docs/README
  docs/tutorial/README.rst
  hgext3rd/topic/README

  $ egrep '(gitlab|contrib|hack|format-source)' files
  [1]
  $ fgrep legacy.py files
  [1]
  $ fgrep netlify files
  [1]