sapling/tests/integration/test-push-protocol.t
Stanislau Hlebik 13f45ee98e mononoke: fix tests
Summary: There was a change in hg replycaps in D8958866, let's update the tests

Reviewed By: farnz

Differential Revision: D8966069

fbshipit-source-id: 72606943d9751b66705b36fbf39ad7dc0702627c
2018-07-24 02:37:00 -07:00

507 lines
14 KiB
Perl

$ . $TESTDIR/library.sh
setup configuration
$ setup_common_config
$ cd $TESTTMP
setup repo
$ hginit_treemanifest repo-hg
$ cd repo-hg
$ echo "a file content" > a
$ hg add a
$ hg ci -ma
setup master bookmarks
$ hg bookmark master_bookmark -r 'tip'
$ hg bookmark master_bookmark2 -r 'tip'
verify content
$ hg log
changeset: 0:0e7ec5675652
bookmark: master_bookmark
bookmark: master_bookmark2
tag: tip
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: a
$ cd $TESTTMP
$ blobimport repo-hg/.hg repo
setup two repos: one will be used to push from, another will be used
to pull these pushed commits
$ hgclone_treemanifest ssh://user@dummy/repo-hg repo2
$ hgclone_treemanifest ssh://user@dummy/repo-hg repo3
$ cd repo2
$ hg pull ../repo-hg
pulling from ../repo-hg
searching for changes
no changes found
start mononoke
$ mononoke
$ wait_for_mononoke $TESTTMP/repo
BEGIN Creation of new commits
create new commits in repo2 and check that they are seen as outgoing
$ mkdir b_dir
$ echo "new a file content" > a
$ echo "b file content" > b_dir/b
$ hg add b_dir/b
$ hg ci -mb
$ echo "updated b file content" > b_dir/b
$ mkdir c_dir
$ echo "c file content" > c_dir/c
$ hg add c_dir/c
$ hg ci -mc
create a commit that makes identical change to file b
$ hg update '.^'
1 files updated, 0 files merged, 1 files removed, 0 files unresolved
$ echo "updated b file content" > b_dir/b
$ mkdir d_dir
$ echo "d file content" > d_dir/d
$ hg add d_dir/d
$ hg ci -md
create a commit that reverts files a and b to older version
$ echo "a file content" > a
$ echo "b file content" > b_dir/b
$ hg ci -me
create a commit that sets content of some files to content of other files
$ echo "b file content" > a
$ echo "a file content" > b_dir/b
$ mkdir c_dir
$ echo "a file content" > c_dir/c
$ hg add c_dir/c
$ echo "b file content" > d_dir/d
$ hg ci -mf
create a commit that renames, copy and deletes some files
$ hg rm b_dir/b
$ hg mv a b_dir/b
$ mkdir e_dir
$ hg mv c_dir/c e_dir/e
$ mkdir a_dir
$ hg mv d_dir/d a_dir/a
$ echo "a file content" > a_dir/a
$ hg cp a_dir/a b_dir/a_bis
$ hg ci -mg
END Creation of new commits
move master bookmarks
$ hg bookmark -f master_bookmark -r 'tip'
$ hg bookmark -f master_bookmark2 -r 'f40c09205504'
$ hg sl --all -r "all()" --stat
@ changeset: 6:634de738bb0f
| bookmark: master_bookmark
| tag: tip
| user: test
| date: Thu Jan 01 00:00:00 1970 +0000
| summary: g
|
| a | 1 -
| a_dir/a | 1 +
| b_dir/a_bis | 1 +
| b_dir/b | 2 +-
| c_dir/c | 1 -
| d_dir/d | 1 -
| e_dir/e | 1 +
| 7 files changed, 4 insertions(+), 4 deletions(-)
|
o changeset: 5:8315ea53ef41
| user: test
| date: Thu Jan 01 00:00:00 1970 +0000
| summary: f
|
| a | 2 +-
| b_dir/b | 2 +-
| c_dir/c | 1 +
| d_dir/d | 2 +-
| 4 files changed, 4 insertions(+), 3 deletions(-)
|
o changeset: 4:30da5bf63484
| user: test
| date: Thu Jan 01 00:00:00 1970 +0000
| summary: e
|
| a | 2 +-
| b_dir/b | 2 +-
| 2 files changed, 2 insertions(+), 2 deletions(-)
|
o changeset: 3:fbd6b221382e
| parent: 1:bb0985934a0f
| user: test
| date: Thu Jan 01 00:00:00 1970 +0000
| summary: d
|
| b_dir/b | 2 +-
| d_dir/d | 1 +
| 2 files changed, 2 insertions(+), 1 deletions(-)
|
| o changeset: 2:f40c09205504
|/ bookmark: master_bookmark2
| user: test
| date: Thu Jan 01 00:00:00 1970 +0000
| summary: c
|
| b_dir/b | 2 +-
| c_dir/c | 1 +
| 2 files changed, 2 insertions(+), 1 deletions(-)
|
o changeset: 1:bb0985934a0f
| user: test
| date: Thu Jan 01 00:00:00 1970 +0000
| summary: b
|
| a | 2 +-
| b_dir/b | 1 +
| 2 files changed, 2 insertions(+), 1 deletions(-)
|
o changeset: 0:0e7ec5675652
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: a
a | 1 +
1 files changed, 1 insertions(+), 0 deletions(-)
$ hgmn outgoing ssh://user@dummy/repo
comparing with ssh://user@dummy/repo
remote: * DEBG Session with Mononoke started with uuid: * (glob)
searching for changes
changeset: 1:bb0985934a0f
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: b
changeset: 2:f40c09205504
bookmark: master_bookmark2
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: c
changeset: 3:fbd6b221382e
parent: 1:bb0985934a0f
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: d
changeset: 4:30da5bf63484
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: e
changeset: 5:8315ea53ef41
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: f
changeset: 6:634de738bb0f
bookmark: master_bookmark
tag: tip
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: g
push to Mononoke
$ hgmn push --force --config treemanifest.treeonly=True --debug ssh://user@dummy/repo
pushing to ssh://user@dummy/repo
running *scm/mononoke/tests/integration/dummyssh.par 'user@dummy' ''\''*scm/mononoke/hgcli/hgcli#binary/hgcli'\'' -R repo serve --stdio' (glob)
sending hello command
sending between command
remote: * DEBG Session with Mononoke started with uuid: * (glob)
remote: * (glob)
remote: capabilities: lookup known getbundle unbundle=HG10GZ,HG10BZ,HG10UN gettreepack remotefilelog pushkey bundle2=* (glob)
remote: 1
query 1; heads
sending batch command
searching for changes
all remote heads known locally
preparing listkeys for "phases"
sending listkeys command
received listkey for "phases": 0 bytes
checking for updated bookmarks
preparing listkeys for "bookmarks"
sending listkeys command
received listkey for "bookmarks": 115 bytes
6 changesets found
list of changesets:
bb0985934a0f8a493887892173b68940ceb40b4f
f40c09205504d8410f8c8679bf7a85fef25f9337
fbd6b221382efa5d5bc53130cdaccf06e04c97d3
30da5bf63484d2d6572edafb3ea211c17cd8c005
8315ea53ef41d34f56232c88669cc80225b6e66d
634de738bb0ff135e32d48567718fb9d7dedf575
sending unbundle command
bundle2-output-bundle: "HG20", 5 parts total
bundle2-output-part: "replycaps" * bytes payload (glob)
bundle2-output-part: "changegroup" (params: 1 mandatory) streamed payload
bundle2-output-part: "pushkey" (params: 4 mandatory) empty payload
bundle2-output-part: "pushkey" (params: 4 mandatory) empty payload
bundle2-output-part: "b2x:treegroup2" (params: 3 mandatory) streamed payload
bundle2-input-bundle: 1 params no-transaction
bundle2-input-part: "reply:changegroup" (params: 2 mandatory) supported
bundle2-input-part: "reply:pushkey" (params: 2 mandatory) supported
bundle2-input-part: "reply:pushkey" (params: 2 mandatory) supported
bundle2-input-bundle: 2 parts total
updating bookmark master_bookmark
updating bookmark master_bookmark2
preparing listkeys for "phases"
sending listkeys command
received listkey for "phases": 0 bytes
Now pull what was just pushed
$ cd ../repo3
$ hgmn sl --all -r "all()" --stat
remote: * DEBG Session with Mononoke started with uuid: * (glob)
@ changeset: 0:0e7ec5675652
bookmark: master_bookmark
bookmark: master_bookmark2
tag: tip
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: a
a | 1 +
1 files changed, 1 insertions(+), 0 deletions(-)
$ hgmn pull -q
Because the revision numbers are assigned nondeterministically we cannot
compare output of the entire tree. Instead we compare only linear histories
$ hgmn log --graph --template '{node} {bookmarks}' -r "::f40c09205504"
o f40c09205504d8410f8c8679bf7a85fef25f9337 master_bookmark2
|
o bb0985934a0f8a493887892173b68940ceb40b4f
|
@ 0e7ec5675652a04069cbf976a42e45b740f3243c
$ hgmn log --graph --template '{node} {bookmarks}' -r "::634de738bb0f"
o 634de738bb0ff135e32d48567718fb9d7dedf575 master_bookmark
|
o 8315ea53ef41d34f56232c88669cc80225b6e66d
|
o 30da5bf63484d2d6572edafb3ea211c17cd8c005
|
o fbd6b221382efa5d5bc53130cdaccf06e04c97d3
|
o bb0985934a0f8a493887892173b68940ceb40b4f
|
@ 0e7ec5675652a04069cbf976a42e45b740f3243c
This last step is verifying every commit one by one, it is done in a single
command, but the output of this command is long
$ for commit in `hg log --template '{node} ' -r '0e7ec567::634de738'` f40c09205504d8410f8c8679bf7a85fef25f9337; do \
$ if [ "`hg export -R $TESTTMP/repo2 ${commit}`" == "`hgmn export ${commit} 2> /dev/null`" ]; then echo "${commit} comparison SUCCESS"; fi; hgmn export ${commit}; echo; echo; done
0e7ec5675652a04069cbf976a42e45b740f3243c comparison SUCCESS
# HG changeset patch
# User test
# Date 0 0
# Thu Jan 01 00:00:00 1970 +0000
# Node ID 0e7ec5675652a04069cbf976a42e45b740f3243c
# Parent 0000000000000000000000000000000000000000
a
diff -r 000000000000 -r 0e7ec5675652 a
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/a Thu Jan 01 00:00:00 1970 +0000
@@ -0,0 +1,1 @@
+a file content
bb0985934a0f8a493887892173b68940ceb40b4f comparison SUCCESS
# HG changeset patch
# User test
# Date 0 0
# Thu Jan 01 00:00:00 1970 +0000
# Node ID bb0985934a0f8a493887892173b68940ceb40b4f
# Parent 0e7ec5675652a04069cbf976a42e45b740f3243c
b
diff -r 0e7ec5675652 -r bb0985934a0f a
--- a/a Thu Jan 01 00:00:00 1970 +0000
+++ b/a Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +1,1 @@
-a file content
+new a file content
diff -r 0e7ec5675652 -r bb0985934a0f b_dir/b
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/b_dir/b Thu Jan 01 00:00:00 1970 +0000
@@ -0,0 +1,1 @@
+b file content
fbd6b221382efa5d5bc53130cdaccf06e04c97d3 comparison SUCCESS
# HG changeset patch
# User test
# Date 0 0
# Thu Jan 01 00:00:00 1970 +0000
# Node ID fbd6b221382efa5d5bc53130cdaccf06e04c97d3
# Parent bb0985934a0f8a493887892173b68940ceb40b4f
d
diff -r bb0985934a0f -r fbd6b221382e b_dir/b
--- a/b_dir/b Thu Jan 01 00:00:00 1970 +0000
+++ b/b_dir/b Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +1,1 @@
-b file content
+updated b file content
diff -r bb0985934a0f -r fbd6b221382e d_dir/d
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/d_dir/d Thu Jan 01 00:00:00 1970 +0000
@@ -0,0 +1,1 @@
+d file content
30da5bf63484d2d6572edafb3ea211c17cd8c005 comparison SUCCESS
# HG changeset patch
# User test
# Date 0 0
# Thu Jan 01 00:00:00 1970 +0000
# Node ID 30da5bf63484d2d6572edafb3ea211c17cd8c005
# Parent fbd6b221382efa5d5bc53130cdaccf06e04c97d3
e
diff -r fbd6b221382e -r 30da5bf63484 a
--- a/a Thu Jan 01 00:00:00 1970 +0000
+++ b/a Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +1,1 @@
-new a file content
+a file content
diff -r fbd6b221382e -r 30da5bf63484 b_dir/b
--- a/b_dir/b Thu Jan 01 00:00:00 1970 +0000
+++ b/b_dir/b Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +1,1 @@
-updated b file content
+b file content
8315ea53ef41d34f56232c88669cc80225b6e66d comparison SUCCESS
# HG changeset patch
# User test
# Date 0 0
# Thu Jan 01 00:00:00 1970 +0000
# Node ID 8315ea53ef41d34f56232c88669cc80225b6e66d
# Parent 30da5bf63484d2d6572edafb3ea211c17cd8c005
f
diff -r 30da5bf63484 -r 8315ea53ef41 a
--- a/a Thu Jan 01 00:00:00 1970 +0000
+++ b/a Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +1,1 @@
-a file content
+b file content
diff -r 30da5bf63484 -r 8315ea53ef41 b_dir/b
--- a/b_dir/b Thu Jan 01 00:00:00 1970 +0000
+++ b/b_dir/b Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +1,1 @@
-b file content
+a file content
diff -r 30da5bf63484 -r 8315ea53ef41 c_dir/c
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/c_dir/c Thu Jan 01 00:00:00 1970 +0000
@@ -0,0 +1,1 @@
+a file content
diff -r 30da5bf63484 -r 8315ea53ef41 d_dir/d
--- a/d_dir/d Thu Jan 01 00:00:00 1970 +0000
+++ b/d_dir/d Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +1,1 @@
-d file content
+b file content
634de738bb0ff135e32d48567718fb9d7dedf575 comparison SUCCESS
# HG changeset patch
# User test
# Date 0 0
# Thu Jan 01 00:00:00 1970 +0000
# Node ID 634de738bb0ff135e32d48567718fb9d7dedf575
# Parent 8315ea53ef41d34f56232c88669cc80225b6e66d
g
diff -r 8315ea53ef41 -r 634de738bb0f a
--- a/a Thu Jan 01 00:00:00 1970 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-b file content
diff -r 8315ea53ef41 -r 634de738bb0f a_dir/a
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/a_dir/a Thu Jan 01 00:00:00 1970 +0000
@@ -0,0 +1,1 @@
+a file content
diff -r 8315ea53ef41 -r 634de738bb0f b_dir/a_bis
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/b_dir/a_bis Thu Jan 01 00:00:00 1970 +0000
@@ -0,0 +1,1 @@
+a file content
diff -r 8315ea53ef41 -r 634de738bb0f b_dir/b
--- a/b_dir/b Thu Jan 01 00:00:00 1970 +0000
+++ b/b_dir/b Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +1,1 @@
-a file content
+b file content
diff -r 8315ea53ef41 -r 634de738bb0f c_dir/c
--- a/c_dir/c Thu Jan 01 00:00:00 1970 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-a file content
diff -r 8315ea53ef41 -r 634de738bb0f d_dir/d
--- a/d_dir/d Thu Jan 01 00:00:00 1970 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-b file content
diff -r 8315ea53ef41 -r 634de738bb0f e_dir/e
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/e_dir/e Thu Jan 01 00:00:00 1970 +0000
@@ -0,0 +1,1 @@
+a file content
f40c09205504d8410f8c8679bf7a85fef25f9337 comparison SUCCESS
# HG changeset patch
# User test
# Date 0 0
# Thu Jan 01 00:00:00 1970 +0000
# Node ID f40c09205504d8410f8c8679bf7a85fef25f9337
# Parent bb0985934a0f8a493887892173b68940ceb40b4f
c
diff -r bb0985934a0f -r f40c09205504 b_dir/b
--- a/b_dir/b Thu Jan 01 00:00:00 1970 +0000
+++ b/b_dir/b Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +1,1 @@
-b file content
+updated b file content
diff -r bb0985934a0f -r f40c09205504 c_dir/c
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/c_dir/c Thu Jan 01 00:00:00 1970 +0000
@@ -0,0 +1,1 @@
+c file content