##// END OF EJS Templates
exchange: move disabling of rev-branch-cache bundle part out of narrow...
exchange: move disabling of rev-branch-cache bundle part out of narrow I'm attempting to refactor changegroup code in order to better support alternate storage backends. The narrow extension is performing a lot of monkeypatching to this code and it is making it difficult to reason about how everything works. I'm reasonably certain I would be unable to abstract storage without requiring extensive rework of narrow. I believe it is less effort to move narrow code into core so it can be accounted for when changegroup code is refactored. So I'll be doing that. The first part of this is integrating the disabling of the cache:rev-branch-cache bundle2 part into core. This doesn't seem like it is related to changegroup, but narrow's modifications to changegroup are invasive and also require taking its code for bundle generation and exchange into core in order for the changegroup code to work. Differential Revision: https://phab.mercurial-scm.org/D4007

File last commit:

r38557:b1bbff1d default
r38813:ab765bc4 default
Show More
test-cat.t
131 lines | 2.1 KiB | text/troff | Tads3Lexer
$ hg init
$ echo 0 > a
$ echo 0 > b
$ hg ci -A -m m
adding a
adding b
$ hg rm a
$ hg cat a
0
$ hg cat --decode a # more tests in test-encode
0
$ echo 1 > b
$ hg ci -m m
$ echo 2 > b
$ hg cat -r 0 a
0
$ hg cat -r 0 b
0
$ hg cat -r 1 a
a: no such file in rev 7040230c159c
[1]
$ hg cat -r 1 b
1
Test multiple files
$ echo 3 > c
$ hg ci -Am addmore c
$ hg cat b c
1
3
$ hg cat .
1
3
$ hg cat . c
1
3
Test fileset
$ hg cat 'set:not(b) or a'
3
$ hg cat 'set:c or b'
1
3
$ mkdir tmp
$ hg cat --output tmp/HH_%H c
$ hg cat --output tmp/RR_%R c
$ hg cat --output tmp/h_%h c
$ hg cat --output tmp/r_%r c
$ hg cat --output tmp/%s_s c
$ hg cat --output tmp/%d%%_d c
$ hg cat --output tmp/%p_p c
$ hg log -r . --template "{rev}: {node|short}\n"
2: 45116003780e
$ find tmp -type f | sort
tmp/.%_d
tmp/HH_45116003780e3678b333fb2c99fa7d559c8457e9
tmp/RR_2
tmp/c_p
tmp/c_s
tmp/h_45116003780e
tmp/r_2
Test template output
$ hg --cwd tmp cat ../b ../c -T '== {path} ({abspath}) r{rev} ==\n{data}'
== ../b (b) r2 ==
1
== ../c (c) r2 ==
3
$ hg cat b c -Tjson --output -
[
{
"abspath": "b",
"data": "1\n",
"path": "b"
},
{
"abspath": "c",
"data": "3\n",
"path": "c"
}
]
$ hg cat b c -Tjson --output 'tmp/%p.json'
$ cat tmp/b.json
[
{
"abspath": "b",
"data": "1\n",
"path": "b"
}
]
$ cat tmp/c.json
[
{
"abspath": "c",
"data": "3\n",
"path": "c"
}
]
Test working directory
$ echo b-wdir > b
$ hg cat -r 'wdir()' b
b-wdir
Environment variables are not visible by default
$ PATTERN='t4' hg log -r '.' -T "{ifcontains('PATTERN', envvars, 'yes', 'no')}\n"
no
Environment variable visibility can be explicit
$ PATTERN='t4' hg log -r '.' -T "{envvars % '{key} -> {value}\n'}" \
> --config "experimental.exportableenviron=PATTERN"
PATTERN -> t4
Test behavior of output when directory structure does not already exist
$ mkdir foo
$ echo a > foo/a
$ hg add foo/a
$ hg commit -qm "add foo/a"
$ hg cat --output "output/%p" foo/a
$ cat output/foo/a
a