Mercurial > hg-stable
view tests/test-impexp-branch.t @ 47024:4c7bc42a509e stable
tests: synchronize the git and Mercurial username
The problem with the default name of "test" set by the test runner is the
stringutil methods are unable to split out separate user and email addresses
that git wants. This means the username is recorded in git as "test <test>".
Amending a commit with that user ends up trying to use "<test>" as the person
field for the new commit, and the git library complains about the angle
brackets. We should probably abort with a clearer message any time this bad
form is used with the git extension.
One of the commit dates is tweaked to recreate the ambiguous hash prefix from
before.
Differential Revision: https://phab.mercurial-scm.org/D10531
author | Matt Harbison <matt_harbison@yahoo.com> |
---|---|
date | Wed, 28 Apr 2021 10:29:45 -0400 |
parents | 7396508ad92b |
children | 42d2b31cee0b |
line wrap: on
line source
$ echo '[extensions]' >> $HGRCPATH $ echo 'strip =' >> $HGRCPATH $ cat >findbranch.py <<EOF > from __future__ import absolute_import > import re > import sys > > head_re = re.compile(r'^#(?:(?:\\s+([A-Za-z][A-Za-z0-9_]*)(?:\\s.*)?)|(?:\\s*))$') > > for line in sys.stdin: > hmatch = head_re.match(line) > if not hmatch: > sys.exit(1) > if hmatch.group(1) == 'Branch': > sys.exit(0) > sys.exit(1) > EOF $ hg init a $ cd a $ echo "Rev 1" >rev $ hg add rev $ hg commit -m "No branch." $ hg branch abranch marked working directory as branch abranch (branches are permanent and global, did you want a bookmark?) $ echo "Rev 2" >rev $ hg commit -m "With branch." $ hg export 0 > ../r0.patch $ hg export 1 > ../r1.patch $ cd .. $ if "$PYTHON" findbranch.py < r0.patch; then > echo "Export of default branch revision has Branch header" 1>&2 > exit 1 > fi $ if "$PYTHON" findbranch.py < r1.patch; then > : # Do nothing > else > echo "Export of branch revision is missing Branch header" 1>&2 > exit 1 > fi Make sure import still works with branch information in patches. $ hg init b $ cd b $ hg import ../r0.patch applying ../r0.patch $ hg import ../r1.patch applying ../r1.patch $ cd .. $ hg init c $ cd c $ hg import --exact --no-commit ../r0.patch applying ../r0.patch warning: can't check exact import with --no-commit $ hg st A rev $ hg revert -a forgetting rev $ rm rev $ hg import --exact ../r0.patch applying ../r0.patch $ hg import --exact ../r1.patch applying ../r1.patch Test --exact and patch header separators (issue3356) $ hg strip --no-backup . 1 files updated, 0 files merged, 0 files removed, 0 files unresolved >>> import re >>> p = open('../r1.patch', 'rb').read() >>> p = re.sub(br'Parent\s+', b'Parent ', p) >>> open('../r1-ws.patch', 'wb').write(p) and None $ hg import --exact ../r1-ws.patch applying ../r1-ws.patch $ cd ..