##// END OF EJS Templates
rhg: add resolve_file_args to path_utils.rs...
rhg: add resolve_file_args to path_utils.rs Extracted logic for resolving `FILE ...` arguments from cat.rs into a new function in path_utils.rs. I plan to use this for rhg annotate. I tried to reuse hg::utils::files::canonical_path instead, but that didn't work. For example it reports a InsideDotHg error for any path containing "..".

File last commit:

r45884:6c562773 default
r53438:f33f37ac tip default
Show More
test-convert-identity.t
41 lines | 1.4 KiB | text/troff | Tads3Lexer
/ tests / test-convert-identity.t
Valentin Gatien-Baron
convert: add a config option to help doing identity hg->hg conversion...
r42839 Testing that convert.hg.preserve-hash=true can be used to make hg
convert from hg repo to hg repo preserve hashes, even if the
computation of the files list in commits change slightly between hg
versions.
$ cat <<'EOF' >> "$HGRCPATH"
> [extensions]
> convert =
> EOF
$ cat <<'EOF' > changefileslist.py
commitctx: directly pass a ChangingFiles object to changelog.add...
r45884 > from mercurial import (changelog, extensions, metadata)
Valentin Gatien-Baron
convert: add a config option to help doing identity hg->hg conversion...
r42839 > def wrap(orig, clog, manifest, files, *args, **kwargs):
commitctx: directly pass a ChangingFiles object to changelog.add...
r45884 > files = metadata.ChangingFiles(touched=[b"a"])
> return orig(clog, manifest, files, *args, **kwargs)
Valentin Gatien-Baron
convert: add a config option to help doing identity hg->hg conversion...
r42839 > def extsetup(ui):
> extensions.wrapfunction(changelog.changelog, 'add', wrap)
> EOF
$ hg init repo
$ cd repo
$ echo a > a; hg commit -qAm a
$ echo b > a; hg commit -qAm b
$ hg up -qr 0; echo c > c; hg commit -qAm c
$ hg merge -qr 1
$ hg commit -m_ --config extensions.x=../changefileslist.py
$ hg log -r . -T '{node|short} {files|json}\n'
c085bbe93d59 ["a"]
Now that we have a commit with a files list that's not what the
current hg version would create, check that convert either fixes it or
keeps it depending on config:
$ hg convert -q . ../convert
$ hg --cwd ../convert log -r tip -T '{node|short} {files|json}\n'
b7c4d4bbacd3 []
$ rm -rf ../convert
$ hg convert -q . ../convert --config convert.hg.preserve-hash=true
$ hg --cwd ../convert log -r tip -T '{node|short} {files|json}\n'
c085bbe93d59 ["a"]
$ rm -rf ../convert