##// END OF EJS Templates
bookmarks: fix pushkey compatibility mode (issue5777)...
Boris Feld -
r35829:e35320ce stable
parent child Browse files
Show More
@@ -2033,7 +2033,7 def handlebookmark(op, inpart):
2033 2033 for book, node in changes:
2034 2034 hookargs = tr.hookargs.copy()
2035 2035 hookargs['pushkeycompat'] = '1'
2036 hookargs['namespace'] = 'bookmark'
2036 hookargs['namespace'] = 'bookmarks'
2037 2037 hookargs['key'] = book
2038 2038 hookargs['old'] = nodemod.hex(bookstore.get(book, ''))
2039 2039 hookargs['new'] = nodemod.hex(node if node is not None else '')
@@ -1173,3 +1173,72 Using http
1173 1173
1174 1174 $ hg -R ../issue4455-dest/ bookmarks
1175 1175 no bookmarks set
1176
1177 $ cd ..
1178
1179 Test that pre-pushkey compat for bookmark works as expected (issue5777)
1180
1181 $ cat << EOF >> $HGRCPATH
1182 > [ui]
1183 > ssh="$PYTHON" "$TESTDIR/dummyssh"
1184 > [server]
1185 > bookmarks-pushkey-compat = yes
1186 > EOF
1187
1188 $ hg init server
1189 $ echo foo > server/a
1190 $ hg -R server book foo
1191 $ hg -R server commit -Am a
1192 adding a
1193 $ hg clone ssh://user@dummy/server client
1194 requesting all changes
1195 adding changesets
1196 adding manifests
1197 adding file changes
1198 added 1 changesets with 1 changes to 1 files
1199 new changesets 79513d0d7716
1200 updating to branch default
1201 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
1202
1203 Forbid bookmark move on the server
1204
1205 $ cat << EOF >> server/.hg/hgrc
1206 > [hooks]
1207 > prepushkey.no-bm-move= echo \$HG_NAMESPACE | grep -v bookmarks
1208 > EOF
1209
1210 pushing changeset is okay
1211
1212 $ echo bar >> client/a
1213 $ hg -R client commit -m b
1214 $ hg -R client push
1215 pushing to ssh://user@dummy/server
1216 searching for changes
1217 remote: adding changesets
1218 remote: adding manifests
1219 remote: adding file changes
1220 remote: added 1 changesets with 1 changes to 1 files
1221
1222 attempt to move the bookmark is rejected
1223
1224 $ hg -R client book foo -r .
1225 moving bookmark 'foo' forward from 79513d0d7716
1226
1227 #if b2-pushkey
1228 $ hg -R client push
1229 pushing to ssh://user@dummy/server
1230 searching for changes
1231 no changes found
1232 remote: pushkey-abort: prepushkey.no-bm-move hook exited with status 1
1233 abort: updating bookmark foo failed!
1234 [255]
1235 #endif
1236 #if b2-binary
1237 $ hg -R client push
1238 pushing to ssh://user@dummy/server
1239 searching for changes
1240 no changes found
1241 remote: prepushkey.no-bm-move hook exited with status 1
1242 abort: push failed on remote
1243 [255]
1244 #endif
@@ -253,7 +253,7 push
253 253 remote: added 1 changesets with 0 changes to 0 files (-1 heads)
254 254 remote: 1 new obsolescence markers
255 255 remote: pre-close-tip:eea13746799a public book_eea1
256 remote: pushkey: lock state after "bookmark"
256 remote: pushkey: lock state after "bookmarks"
257 257 remote: lock: free
258 258 remote: wlock: free
259 259 remote: postclose-tip:eea13746799a public book_eea1
@@ -339,7 +339,7 push over ssh
339 339 remote: added 1 changesets with 1 changes to 1 files
340 340 remote: 1 new obsolescence markers
341 341 remote: pre-close-tip:5fddd98957c8 draft book_5fdd
342 remote: pushkey: lock state after "bookmark"
342 remote: pushkey: lock state after "bookmarks"
343 343 remote: lock: free
344 344 remote: wlock: free
345 345 remote: postclose-tip:5fddd98957c8 draft book_5fdd
@@ -390,7 +390,7 push over http
390 390 remote: added 1 changesets with 1 changes to 1 files
391 391 remote: 1 new obsolescence markers
392 392 remote: pre-close-tip:32af7686d403 public book_32af
393 remote: pushkey: lock state after "bookmark"
393 remote: pushkey: lock state after "bookmarks"
394 394 remote: lock: free
395 395 remote: wlock: free
396 396 remote: postclose-tip:32af7686d403 public book_32af
@@ -244,7 +244,7 pushkey hook
244 244 no changes found
245 245 pretxnopen hook: HG_HOOKNAME=pretxnopen HG_HOOKTYPE=pretxnopen HG_TXNID=TXN:$ID$ HG_TXNNAME=push
246 246 pretxnclose hook: HG_BOOKMARK_MOVED=1 HG_BUNDLE2=1 HG_HOOKNAME=pretxnclose HG_HOOKTYPE=pretxnclose HG_PENDING=$TESTTMP/a HG_SOURCE=push HG_TXNID=TXN:$ID$ HG_TXNNAME=push HG_URL=file:$TESTTMP/a
247 pushkey hook: HG_BUNDLE2=1 HG_HOOKNAME=pushkey HG_HOOKTYPE=pushkey HG_KEY=foo HG_NAMESPACE=bookmark HG_NEW=0000000000000000000000000000000000000000 HG_PUSHKEYCOMPAT=1 HG_SOURCE=push HG_TXNID=TXN:$ID$ HG_URL=file:$TESTTMP/a
247 pushkey hook: HG_BUNDLE2=1 HG_HOOKNAME=pushkey HG_HOOKTYPE=pushkey HG_KEY=foo HG_NAMESPACE=bookmarks HG_NEW=0000000000000000000000000000000000000000 HG_PUSHKEYCOMPAT=1 HG_SOURCE=push HG_TXNID=TXN:$ID$ HG_URL=file:$TESTTMP/a
248 248 txnclose hook: HG_BOOKMARK_MOVED=1 HG_BUNDLE2=1 HG_HOOKNAME=txnclose HG_HOOKTYPE=txnclose HG_SOURCE=push HG_TXNID=TXN:$ID$ HG_TXNNAME=push HG_URL=file:$TESTTMP/a
249 249 exporting bookmark foo
250 250 [1]
@@ -281,7 +281,7 test that prepushkey can prevent incomin
281 281 listkeys hook: HG_HOOKNAME=listkeys HG_HOOKTYPE=listkeys HG_NAMESPACE=bookmarks HG_VALUES={'bar': '0000000000000000000000000000000000000000', 'foo': '0000000000000000000000000000000000000000'}
282 282 no changes found
283 283 pretxnopen hook: HG_HOOKNAME=pretxnopen HG_HOOKTYPE=pretxnopen HG_TXNID=TXN:$ID$ HG_TXNNAME=push
284 prepushkey.forbid hook: HG_BUNDLE2=1 HG_HOOKNAME=prepushkey HG_HOOKTYPE=prepushkey HG_KEY=baz HG_NAMESPACE=bookmark HG_NEW=0000000000000000000000000000000000000000 HG_PUSHKEYCOMPAT=1 HG_SOURCE=push HG_TXNID=TXN:$ID$ HG_URL=file:$TESTTMP/a
284 prepushkey.forbid hook: HG_BUNDLE2=1 HG_HOOKNAME=prepushkey HG_HOOKTYPE=prepushkey HG_KEY=baz HG_NAMESPACE=bookmarks HG_NEW=0000000000000000000000000000000000000000 HG_PUSHKEYCOMPAT=1 HG_SOURCE=push HG_TXNID=TXN:$ID$ HG_URL=file:$TESTTMP/a
285 285 abort: prepushkey hook exited with status 1
286 286 [255]
287 287 $ cd ../a
General Comments 0
You need to be logged in to leave comments. Login now