test-remotefilelog-push-pull.t
229 lines
| 5.8 KiB
| text/troff
|
Tads3Lexer
/ tests / test-remotefilelog-push-pull.t
Matt Harbison
|
r40758 | #require no-windows | ||
Augie Fackler
|
r40530 | $ . "$TESTDIR/remotefilelog-library.sh" | ||
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 .. | ||||
$ hgcloneshallow ssh://user@dummy/master shallow -q | ||||
1 files fetched over 1 fetches - (1 misses, 0.00% hit ratio) over *s (glob) | ||||
$ hgcloneshallow ssh://user@dummy/master shallow2 -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 shallow from full | ||||
$ echo y > y | ||||
$ hg commit -qAm y | ||||
$ cd ../shallow | ||||
$ hg pull | ||||
pulling from ssh://user@dummy/master | ||||
searching for changes | ||||
adding changesets | ||||
adding manifests | ||||
adding file changes | ||||
added 1 changesets with 0 changes to 0 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 | ||||
1 files fetched over 1 fetches - (1 misses, 0.00% hit ratio) over *s (glob) | ||||
$ cat y | ||||
y | ||||
$ cd .. | ||||
# pull from shallow to shallow (local) | ||||
$ cd shallow | ||||
$ echo z > z | ||||
$ hg commit -qAm z | ||||
$ echo x >> x | ||||
$ echo y >> y | ||||
$ hg commit -qAm xxyy | ||||
$ cd ../shallow2 | ||||
$ clearcache | ||||
$ hg pull ../shallow | ||||
pulling from ../shallow | ||||
searching for changes | ||||
adding changesets | ||||
adding manifests | ||||
adding file changes | ||||
added 3 changesets with 4 changes to 3 files | ||||
new changesets d34c38483be9:d7373980d475 (2 drafts) | ||||
(run 'hg update' to get a working copy) | ||||
2 files fetched over 2 fetches - (2 misses, 0.00% hit ratio) over *s (glob) | ||||
# pull from shallow to shallow (ssh) | ||||
$ hg strip -r 1 | ||||
saved backup bundle to $TESTTMP/shallow2/.hg/strip-backup/d34c38483be9-89d325c9-backup.hg (glob) | ||||
$ hg pull ssh://user@dummy/$TESTTMP/shallow --config remotefilelog.cachepath=${CACHEDIR}2 | ||||
pulling from ssh://user@dummy/$TESTTMP/shallow | ||||
searching for changes | ||||
adding changesets | ||||
adding manifests | ||||
adding file changes | ||||
added 3 changesets with 4 changes to 3 files | ||||
new changesets d34c38483be9:d7373980d475 (2 drafts) | ||||
(run 'hg update' to get a working copy) | ||||
1 files fetched over 1 fetches - (1 misses, 0.00% hit ratio) over *s (glob) | ||||
$ hg up | ||||
3 files updated, 0 files merged, 0 files removed, 0 files unresolved | ||||
$ cat z | ||||
z | ||||
$ hg -R ../shallow strip -qr 3 | ||||
$ hg strip -qr 3 | ||||
$ cd .. | ||||
# push from shallow to shallow | ||||
$ cd shallow | ||||
$ echo a > a | ||||
$ hg commit -qAm a | ||||
$ hg push ssh://user@dummy/$TESTTMP/shallow2 | ||||
pushing to ssh://user@dummy/$TESTTMP/shallow2 | ||||
searching for changes | ||||
remote: adding changesets | ||||
remote: adding manifests | ||||
remote: adding file changes | ||||
remote: added 1 changesets with 1 changes to 1 files | ||||
$ cd ../shallow2 | ||||
$ hg up | ||||
1 files updated, 0 files merged, 0 files removed, 0 files unresolved | ||||
$ cat a | ||||
a | ||||
# verify files are read-only | ||||
$ ls -l .hg/store/data | ||||
total * (glob) | ||||
drwxrwxr-x* 11f6ad8ec52a2984abaafd7c3b516503785c2072 (glob) | ||||
drwxrwxr-x* 395df8f7c51f007019cb30201c49e884b46b92fa (glob) | ||||
drwxrwxr-x* 86f7e437faa5a7fce15d1ddcb9eaeaea377667b8 (glob) | ||||
drwxrwxr-x* 95cb0bfd2977c761298d9624e4b4d4c72a39974a (glob) | ||||
$ ls -l .hg/store/data/395df8f7c51f007019cb30201c49e884b46b92fa | ||||
total * (glob) | ||||
-r--r--r--* 69a1b67522704ec122181c0890bd16e9d3e7516a (glob) | ||||
-r--r--r--* 69a1b67522704ec122181c0890bd16e9d3e7516a_old (glob) | ||||
$ cd .. | ||||
# push from shallow to full | ||||
$ cd shallow | ||||
$ hg push | ||||
pushing to ssh://user@dummy/master | ||||
searching for changes | ||||
remote: adding changesets | ||||
remote: adding manifests | ||||
remote: adding file changes | ||||
remote: added 2 changesets with 2 changes to 2 files | ||||
$ cd ../master | ||||
$ hg log -l 1 --style compact | ||||
3[tip] 1489bbbc46f0 1970-01-01 00:00 +0000 test | ||||
a | ||||
$ hg up | ||||
2 files updated, 0 files merged, 0 files removed, 0 files unresolved | ||||
$ cat a | ||||
a | ||||
# push public commits | ||||
$ cd ../shallow | ||||
$ echo p > p | ||||
$ hg commit -qAm p | ||||
$ hg phase -f -p -r . | ||||
$ echo d > d | ||||
$ hg commit -qAm d | ||||
$ cd ../shallow2 | ||||
$ hg pull ../shallow | ||||
pulling from ../shallow | ||||
searching for changes | ||||
adding changesets | ||||
adding manifests | ||||
adding file changes | ||||
added 2 changesets with 2 changes to 2 files | ||||
new changesets 3a2e32c04641:cedeb4167c1f (1 drafts) | ||||
2 local changesets published (?) | ||||
(run 'hg update' to get a working copy) | ||||
$ cd .. | ||||
# Test pushing from shallow to shallow with multiple manifests introducing the | ||||
# same filenode. Test this by constructing two separate histories of file 'c' | ||||
# that share a file node and verifying that the history works after pushing. | ||||
Martin von Zweigbergk
|
r40605 | $ hg init multimf-master | ||
Augie Fackler
|
r40530 | $ hgcloneshallow ssh://user@dummy/multimf-master multimf-shallow -q | ||
$ hgcloneshallow ssh://user@dummy/multimf-master multimf-shallow2 -q | ||||
$ cd multimf-shallow | ||||
$ echo a > a | ||||
$ hg commit -qAm a | ||||
$ echo b > b | ||||
$ hg commit -qAm b | ||||
$ echo c > c | ||||
$ hg commit -qAm c1 | ||||
$ hg up -q 0 | ||||
$ echo c > c | ||||
$ hg commit -qAm c2 | ||||
$ echo cc > c | ||||
$ hg commit -qAm c22 | ||||
$ hg log -G -T '{rev} {desc}\n' | ||||
@ 4 c22 | ||||
| | ||||
o 3 c2 | ||||
| | ||||
| o 2 c1 | ||||
| | | ||||
| o 1 b | ||||
|/ | ||||
o 0 a | ||||
$ cd ../multimf-shallow2 | ||||
- initial commit to prevent hg pull from being a clone | ||||
$ echo z > z && hg commit -qAm z | ||||
$ hg pull -f ssh://user@dummy/$TESTTMP/multimf-shallow | ||||
pulling from ssh://user@dummy/$TESTTMP/multimf-shallow | ||||
searching for changes | ||||
warning: repository is unrelated | ||||
requesting all changes | ||||
adding changesets | ||||
adding manifests | ||||
adding file changes | ||||
added 5 changesets with 4 changes to 3 files (+2 heads) | ||||
new changesets cb9a9f314b8b:d8f06a4c6d38 (5 drafts) | ||||
(run 'hg heads' to see heads, 'hg merge' to merge) | ||||
$ hg up -q 5 | ||||
$ hg log -f -T '{rev}\n' c | ||||
5 | ||||
4 | ||||