test-remotefilelog-pull-noshallow.t
79 lines
| 2.2 KiB
| text/troff
|
Tads3Lexer
/ tests / test-remotefilelog-pull-noshallow.t
Matt Harbison
|
r40758 | #require no-windows | ||
Augie Fackler
|
r40530 | $ . "$TESTDIR/remotefilelog-library.sh" | ||
Set up an extension to make sure remotefilelog clientsetup() runs | ||||
unconditionally even if we have never used a local shallow repo. | ||||
This mimics behavior when using remotefilelog with chg. clientsetup() can be | ||||
triggered due to a shallow repo, and then the code can later interact with | ||||
non-shallow repositories. | ||||
$ cat > setupremotefilelog.py << EOF | ||||
> from mercurial import extensions | ||||
> def extsetup(ui): | ||||
Pulkit Goyal
|
r40986 | > remotefilelog = extensions.find(b'remotefilelog') | ||
Augie Fackler
|
r40530 | > remotefilelog.onetimeclientsetup(ui) | ||
> EOF | ||||
Set up the master repository to pull from. | ||||
Martin von Zweigbergk
|
r40605 | $ hg init master | ||
Augie Fackler
|
r40530 | $ cd master | ||
$ cat >> .hg/hgrc <<EOF | ||||
> [remotefilelog] | ||||
> server=True | ||||
> EOF | ||||
$ echo x > x | ||||
$ hg commit -qAm x | ||||
$ cd .. | ||||
$ hg clone ssh://user@dummy/master child -q | ||||
We should see the remotefilelog capability here, which advertises that | ||||
the server supports our custom getfiles method. | ||||
$ cd master | ||||
$ echo 'hello' | hg -R . serve --stdio | grep capa | identifyrflcaps | ||||
Augie Fackler
|
r40543 | exp-remotefilelog-ssh-getfiles-1 | ||
Augie Fackler
|
r40546 | x_rfl_getfile | ||
x_rfl_getflogheads | ||||
Augie Fackler
|
r40530 | $ echo 'capabilities' | hg -R . serve --stdio | identifyrflcaps ; echo | ||
Augie Fackler
|
r40543 | exp-remotefilelog-ssh-getfiles-1 | ||
Augie Fackler
|
r40546 | x_rfl_getfile | ||
x_rfl_getflogheads | ||||
Augie Fackler
|
r40530 | |||
Pull to the child repository. Use our custom setupremotefilelog extension | ||||
to ensure that remotefilelog.onetimeclientsetup() gets triggered. (Without | ||||
using chg it normally would not be run in this case since the local repository | ||||
is not shallow.) | ||||
$ echo y > y | ||||
$ hg commit -qAm y | ||||
$ cd ../child | ||||
$ hg pull --config extensions.setuprfl=$TESTTMP/setupremotefilelog.py | ||||
pulling from ssh://user@dummy/master | ||||
searching for changes | ||||
adding changesets | ||||
adding manifests | ||||
adding file changes | ||||
added 1 changesets with 1 changes to 1 files | ||||
new changesets d34c38483be9 | ||||
(run 'hg update' to get a working copy) | ||||
$ hg up | ||||
1 files updated, 0 files merged, 0 files removed, 0 files unresolved | ||||
$ cat y | ||||
y | ||||
Test that bundle works in a non-remotefilelog repo w/ remotefilelog loaded | ||||
$ echo y >> y | ||||
$ hg commit -qAm "modify y" | ||||
$ hg bundle --base ".^" --rev . mybundle.hg --config extensions.setuprfl=$TESTTMP/setupremotefilelog.py | ||||
1 changesets found | ||||
$ cd .. | ||||