##// END OF EJS Templates
copies: fix the changeset based algorithm regarding merge...
copies: fix the changeset based algorithm regarding merge In 99ebde4fec99, we changed the list of files stored into the `files` field. This lead to the changeset centric copy algorithm to break in various merge situation involving merge. Older information could reach the merge through `p1`, and while information from `p2` was strictly fresher, it would get overwritten anyway. We update the situation with more details about which revision introduces rename information. This help use making the right decision in case of merge. We are now running a more comprehensive suite of test with include this kind of situation. The behavior differ slightly from the filelog based in a couple of instance. There is mostly two distinct cases: 1) there are conflicting rename information in a merge (different rename history on each side). In this case the filelog based implementation arbitrarily pick a side based on the file-revision-number. So it depends on a local factor. The changeset centric algorithm will use a deterministic approach, by picking the information coming from the first parent of the merge. This is stable across different clone. 2) rename information related to file that exist in both source and destination. The filelog based implementation do not even try to detect these, however the changeset centric one get them for "free" (it is simpler to detect them than not). The new implementation focus on correctness. Performance improvement will come later. Differential Revision: https://phab.mercurial-scm.org/D8244

File last commit:

r44252:28a91a58 default
r45252:45f3f35c default
Show More
test-check-code.t
93 lines | 3.4 KiB | text/troff | Tads3Lexer
/ tests / test-check-code.t
Pierre-Yves David
tests: move the '-hg' postfix for all style tests...
r27368 #require test-repo
timeless
tests: silence test-repo obsolete warning...
r29219 $ . "$TESTDIR/helpers-testrepo.sh"
Pierre-Yves David
tests: move the '-hg' postfix for all style tests...
r27368 $ check_code="$TESTDIR"/../contrib/check-code.py
$ cd "$TESTDIR"/..
New errors are not allowed. Warnings are strongly discouraged.
(The writing "no-che?k-code" is for not skipping this file when checking.)
Siddharth Agarwal
tests: disable lints on mercurial/thirdparty...
r34396 $ testrepohg locate \
> -X contrib/python-zstandard \
> -X hgext/fsmonitor/pywatchman \
> -X mercurial/thirdparty \
> | sed 's-\\-/-g' | "$check_code" --warnings --per-file=0 - || false
Gregory Szorc
automation: perform tasks on remote machines...
r42191 Skipping contrib/automation/hgautomation/__init__.py it has no-che?k-code (glob)
Skipping contrib/automation/hgautomation/aws.py it has no-che?k-code (glob)
Skipping contrib/automation/hgautomation/cli.py it has no-che?k-code (glob)
Gregory Szorc
automation: initial support for running Linux tests...
r42471 Skipping contrib/automation/hgautomation/linux.py it has no-che?k-code (glob)
Gregory Szorc
automation: implement "publish-windows-artifacts" command...
r43177 Skipping contrib/automation/hgautomation/pypi.py it has no-che?k-code (glob)
Gregory Szorc
automation: initial support for running Linux tests...
r42471 Skipping contrib/automation/hgautomation/ssh.py it has no-che?k-code (glob)
Gregory Szorc
automation: add a command to submit to a Try server...
r43327 Skipping contrib/automation/hgautomation/try_server.py it has no-che?k-code (glob)
Gregory Szorc
automation: perform tasks on remote machines...
r42191 Skipping contrib/automation/hgautomation/windows.py it has no-che?k-code (glob)
Skipping contrib/automation/hgautomation/winrm.py it has no-che?k-code (glob)
Augie Fackler
fuzz: use a more standard approach to allow local builds of fuzzers...
r44265 Skipping contrib/fuzz/FuzzedDataProvider.h it has no-che?k-code (glob)
Skipping contrib/fuzz/standalone_fuzz_target_runner.cc it has no-che?k-code (glob)
Gregory Szorc
packaging: consolidate CLI functionality into packaging.py...
r43913 Skipping contrib/packaging/hgpackaging/cli.py it has no-che?k-code (glob)
Gregory Szorc
packaging: split downloading code into own module...
r42074 Skipping contrib/packaging/hgpackaging/downloads.py it has no-che?k-code (glob)
Gregory Szorc
packaging: move Inno Setup core logic into a module...
r42077 Skipping contrib/packaging/hgpackaging/inno.py it has no-che?k-code (glob)
Gregory Szorc
packaging: extract py2exe functionality to own module...
r42081 Skipping contrib/packaging/hgpackaging/py2exe.py it has no-che?k-code (glob)
Gregory Szorc
packaging: establish hgpackaging package...
r42073 Skipping contrib/packaging/hgpackaging/util.py it has no-che?k-code (glob)
Gregory Szorc
wix: functionality to automate building WiX installers...
r42087 Skipping contrib/packaging/hgpackaging/wix.py it has no-che?k-code (glob)
Pierre-Yves David
tests: move the '-hg' postfix for all style tests...
r27368 Skipping i18n/polib.py it has no-che?k-code (glob)
Gregory Szorc
statprof: vendor statprof.py...
r30253 Skipping mercurial/statprof.py it has no-che?k-code (glob)
Gregory Szorc
tests: add tests for poorly behaving HTTP server...
r32001 Skipping tests/badserverext.py it has no-che?k-code (glob)
Gregory Szorc
tests: add test that @commands in debugcommands.py are sorted...
r30540
@commands in debugcommands.py should be in alphabetical order.
>>> import re
>>> commands = []
>>> with open('mercurial/debugcommands.py', 'rb') as fh:
... for line in fh:
Gregory Szorc
tests: use raw string in test-check-code.t...
r41688 ... m = re.match(br"^@command\('([a-z]+)", line)
Gregory Szorc
tests: add test that @commands in debugcommands.py are sorted...
r30540 ... if m:
... commands.append(m.group(1))
>>> scommands = list(sorted(commands))
>>> for i, command in enumerate(scommands):
... if command != commands[i]:
... print('commands in debugcommands.py not sorted; first differing '
... 'command is %s; expected %s' % (commands[i], command))
... break
Jun Wu
test-check-code: prevent files being added to the root directory...
r31726
Prevent adding new files in the root directory accidentally.
Yuya Nishihara
tests: alias syshg and syshgenv so they can be switched conditionally
r33199 $ testrepohg files 'glob:*'
Alex Gaynor
phabricator: include the suggested arc config in the repo...
r33584 .arcconfig
Augie Fackler
clang-format: configuration for the clang-format source formatter...
r34799 .clang-format
Jun Wu
test-check-code: prevent files being added to the root directory...
r31726 .editorconfig
.hgignore
.hgsigs
.hgtags
av6
hgweb: add .jshintrc with some basic rules...
r35163 .jshintrc
Jun Wu
test-check-code: prevent files being added to the root directory...
r31726 CONTRIBUTING
CONTRIBUTORS
COPYING
Makefile
David Demelier
doc: rename README to README.rst...
r34580 README.rst
Augie Fackler
black: rename pyproject.toml to black.toml...
r43496 black.toml
Jun Wu
test-check-code: prevent files being added to the root directory...
r31726 hg
hgeditor
hgweb.cgi
setup.py
Yuya Nishihara
test-check-code: prevent from adding Python modules shadowed by ancient C
r37822
Prevent adding modules which could be shadowed by ancient .so/.dylib.
$ testrepohg files \
> mercurial/base85.py \
> mercurial/bdiff.py \
> mercurial/diffhelpers.py \
> mercurial/mpatch.py \
> mercurial/osutil.py \
> mercurial/parsers.py \
> mercurial/zstd.py
[1]
Augie Fackler
tests: ensure the python 3 passing test list stays sorted...
r40199
Keep python3 tests sorted:
$ sort < contrib/python3-whitelist > $TESTTMP/py3sorted
$ cmp contrib/python3-whitelist $TESTTMP/py3sorted || echo 'Please sort passing tests!'
Gregory Szorc
tests: check for Windows line endings...
r44091
Keep Windows line endings in check
$ hg files 'set:eol(dos)'
contrib/win32/hg.bat
contrib/win32/mercurial.ini