1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211
|
#require no-chg
$ hg init repo
$ cd repo
$ echo foo > foo
$ hg ci -qAm 'add foo'
$ echo >> foo
$ hg ci -m 'change foo'
$ hg up -qC 0
$ echo bar > bar
$ hg ci -qAm 'add bar'
$ hg log
changeset: 2:effea6de0384
tag: tip
parent: 0:bbd179dfa0a7
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: add bar
changeset: 1:ed1b79f46b9a
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: change foo
changeset: 0:bbd179dfa0a7
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: add foo
$ cd ..
Test pullbundle functionality
$ cd repo
$ cat <<EOF > .hg/hgrc
> [server]
> pullbundle = True
> [experimental]
> evolution = True
> [extensions]
> blackbox =
> EOF
$ hg bundle --base null -r 0 .hg/0.hg
1 changesets found
$ hg bundle --base 0 -r 1 .hg/1.hg
1 changesets found
$ hg bundle --base 1 -r 2 .hg/2.hg
1 changesets found
$ cat <<EOF > .hg/pullbundles.manifest
> 2.hg BUNDLESPEC=none-v2 heads=effea6de0384e684f44435651cb7bd70b8735bd4 bases=bbd179dfa0a71671c253b3ae0aa1513b60d199fa
> 1.hg BUNDLESPEC=bzip2-v2 heads=ed1b79f46b9a29f5a6efa59cf12fcfca43bead5a bases=bbd179dfa0a71671c253b3ae0aa1513b60d199fa
> 0.hg BUNDLESPEC=gzip-v2 heads=bbd179dfa0a71671c253b3ae0aa1513b60d199fa
> EOF
$ hg --config blackbox.track=debug --debug serve -p $HGPORT2 -d --pid-file=../repo.pid -E ../error.txt
listening at http://*:$HGPORT2/ (bound to $LOCALIP:$HGPORT2) (glob) (?)
$ cat ../repo.pid >> $DAEMON_PIDS
$ cd ..
$ hg clone -r 0 http://localhost:$HGPORT2/ repo.pullbundle
adding changesets
adding manifests
adding file changes
added 1 changesets with 1 changes to 1 files
new changesets bbd179dfa0a7 (1 drafts)
updating to branch default
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ cat error.txt
$ cd repo.pullbundle
$ hg pull -r 1
pulling from http://localhost:$HGPORT2/
searching for changes
adding changesets
adding manifests
adding file changes
added 1 changesets with 1 changes to 1 files
new changesets ed1b79f46b9a (1 drafts)
(run 'hg update' to get a working copy)
$ hg pull -r 2
pulling from http://localhost:$HGPORT2/
searching for changes
adding changesets
adding manifests
adding file changes
added 1 changesets with 1 changes to 1 files (+1 heads)
new changesets effea6de0384 (1 drafts)
(run 'hg heads' to see heads, 'hg merge' to merge)
$ cd ..
$ killdaemons.py
$ grep 'sending pullbundle ' repo/.hg/blackbox.log
* sending pullbundle "0.hg" (glob)
* sending pullbundle "1.hg" (glob)
* sending pullbundle "2.hg" (glob)
$ rm repo/.hg/blackbox.log
Test pullbundle functionality for incremental pulls
$ cd repo
$ hg --config blackbox.track=debug --debug serve -p $HGPORT2 -d --pid-file=../repo.pid
listening at http://*:$HGPORT2/ (bound to $LOCALIP:$HGPORT2) (glob) (?)
$ cat ../repo.pid >> $DAEMON_PIDS
$ cd ..
$ hg clone http://localhost:$HGPORT2/ repo.pullbundle2
requesting all changes
adding changesets
adding manifests
adding file changes
adding changesets
adding manifests
adding file changes
adding changesets
adding manifests
adding file changes
added 3 changesets with 3 changes to 3 files (+1 heads)
new changesets bbd179dfa0a7:ed1b79f46b9a (3 drafts)
updating to branch default
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ killdaemons.py
$ grep 'sending pullbundle ' repo/.hg/blackbox.log
* sending pullbundle "0.hg" (glob)
* sending pullbundle "2.hg" (glob)
* sending pullbundle "1.hg" (glob)
$ rm repo/.hg/blackbox.log
Test pullbundle functionality for incoming
$ cd repo
$ hg --config blackbox.track=debug --debug serve -p $HGPORT2 -d --pid-file=../repo.pid
listening at http://*:$HGPORT2/ (bound to $LOCALIP:$HGPORT2) (glob) (?)
$ cat ../repo.pid >> $DAEMON_PIDS
$ cd ..
$ hg clone http://localhost:$HGPORT2/ repo.pullbundle2a -r 0
adding changesets
adding manifests
adding file changes
added 1 changesets with 1 changes to 1 files
new changesets bbd179dfa0a7 (1 drafts)
updating to branch default
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ cd repo.pullbundle2a
$ hg incoming -r ed1b79f46b9a
comparing with http://localhost:$HGPORT2/
searching for changes
changeset: 1:ed1b79f46b9a
tag: tip
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: change foo
$ cd ..
$ killdaemons.py
$ grep 'sending pullbundle ' repo/.hg/blackbox.log
* sending pullbundle "0.hg" (glob)
* sending pullbundle "1.hg" (glob)
$ rm repo/.hg/blackbox.log
Test recovery from misconfigured server sending no new data
$ cd repo
$ cat <<EOF > .hg/pullbundles.manifest
> 0.hg heads=ed1b79f46b9a29f5a6efa59cf12fcfca43bead5a bases=bbd179dfa0a71671c253b3ae0aa1513b60d199fa
> 0.hg heads=bbd179dfa0a71671c253b3ae0aa1513b60d199fa
> EOF
$ hg --config blackbox.track=debug --debug serve -p $HGPORT2 -d --pid-file=../repo.pid
listening at http://*:$HGPORT2/ (bound to $LOCALIP:$HGPORT2) (glob) (?)
$ cat ../repo.pid >> $DAEMON_PIDS
$ cd ..
$ hg clone -r 0 http://localhost:$HGPORT2/ repo.pullbundle3
adding changesets
adding manifests
adding file changes
added 1 changesets with 1 changes to 1 files
new changesets bbd179dfa0a7 (1 drafts)
updating to branch default
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ cd repo.pullbundle3
$ hg pull -r 1
pulling from http://localhost:$HGPORT2/
searching for changes
adding changesets
adding manifests
adding file changes
added 0 changesets with 0 changes to 1 files
abort: 00changelog.i@ed1b79f46b9a: no node!
[255]
$ cd ..
$ killdaemons.py
$ grep 'sending pullbundle ' repo/.hg/blackbox.log
* sending pullbundle "0.hg" (glob)
* sending pullbundle "0.hg" (glob)
$ rm repo/.hg/blackbox.log
Test processing when nodes used in the pullbundle.manifest end up being hidden
$ hg --repo repo debugobsolete ed1b79f46b9a29f5a6efa59cf12fcfca43bead5a
1 new obsolescence markers
obsoleted 1 changesets
$ hg serve --repo repo --config server.view=visible -p $HGPORT -d --pid-file=hg.pid -E errors.log
$ cat hg.pid >> $DAEMON_PIDS
$ hg clone http://localhost:$HGPORT repo-obs
requesting all changes
adding changesets
adding manifests
adding file changes
adding changesets
adding manifests
adding file changes
added 2 changesets with 2 changes to 2 files
new changesets bbd179dfa0a7:effea6de0384
updating to branch default
2 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ killdaemons.py
|