Mercurial > hg > mercurial-crew-with-dirclash
view tests/test-walk @ 2439:e8c4f3d3df8c
extend network protocol to stop clients from locking servers
now all repositories have capabilities slot, tuple with list of names.
if 'unbundle' capability present, repo supports push where client does
not need to lock server. repository classes that have unbundle capability
also have unbundle method.
implemented for ssh now, will be base for push over http.
unbundle protocol acts this way. server tells client what heads it
has during normal negotiate step. client starts unbundle by repeat
server's heads back to it. if server has new heads, abort immediately.
otherwise, transfer changes to server. once data transferred, server
locks and checks heads again. if heads same, changes can be added.
else someone else added heads, and server aborts.
if client wants to force server to add heads, sends special heads list of
'force'.
author | Vadim Gelfer <vadim.gelfer@gmail.com> |
---|---|
date | Thu, 15 Jun 2006 16:37:23 -0700 |
parents | df8416346bb7 |
children | 01c4ea5e788c c93562fb12cc |
line wrap: on
line source
#!/bin/sh mkdir t cd t hg init mkdir -p beans for b in kidney navy turtle borlotti black pinto; do echo $b > beans/$b done mkdir -p mammals/Procyonidae for m in cacomistle coatimundi raccoon; do echo $m > mammals/Procyonidae/$m done echo skunk > mammals/skunk echo fennel > fennel echo fenugreek > fenugreek echo fiddlehead > fiddlehead echo glob:glob > glob:glob hg addremove hg commit -m "commit #0" -d "1000000 0" hg debugwalk cd mammals hg debugwalk . hg debugwalk Procyonidae cd Procyonidae hg debugwalk . hg debugwalk .. cd .. hg debugwalk ../beans hg debugwalk . hg debugwalk .hg hg debugwalk ../.hg cd .. hg debugwalk -Ibeans hg debugwalk 'glob:mammals/../beans/b*' hg debugwalk '-X*/Procyonidae' mammals hg debugwalk path:mammals hg debugwalk .. hg debugwalk beans/../.. hg debugwalk .hg hg debugwalk beans/../.hg hg debugwalk beans/../.hg/data hg debugwalk beans/.hg # Don't know how to test absolute paths without always getting a false # error. #hg debugwalk `pwd`/beans #hg debugwalk `pwd`/.. hg debugwalk glob:\* hg debugwalk 're:.*[kb]$' hg debugwalk path:beans/black hg debugwalk beans 'glob:beans/*' hg debugwalk 'glob:j*' hg debugwalk NOEXIST mkfifo fifo hg debugwalk fifo rm fenugreek hg debugwalk fenugreek hg rm fenugreek hg debugwalk fenugreek touch new hg debugwalk new