view tests/test-merge6 @ 635:85e2209d401c

Protocol switch from using generators to stream-like objects. This allows the the pull side to precisely control how much data is read so that another encapsulation layer is not needed. An http client gets a response with a finite size. Because ssh clients need to keep the stream open, we must not read more data than is sent in a response. But due to the streaming nature of the changegroup scheme, only the piece that's parsing the data knows how far it's allowed to read. This means the generator scheme isn't fine-grained enough. Instead we need file-like objects with a read(x) method. This switches everything for push/pull over to using file-like objects rather than generators.
author Matt Mackall <mpm@selenic.com>
date Wed, 06 Jul 2005 22:20:12 -0800
parents d96c1153b25d
children 7e4843b7efd2
line wrap: on
line source

#!/bin/sh -x

cat <<'EOF' > merge
#!/bin/sh
echo merging for `basename $1`
EOF
chmod +x merge
export HGMERGE=./merge

mkdir A1
cd A1
hg init
echo This is file foo1 > foo
echo This is file bar1 > bar
hg add foo bar
hg commit -t "commit text" -d "0 0" -u user

cd ..
hg clone A1 B1

cd A1
rm bar
hg remove bar
hg commit -t "commit test" -d "0 0" -u user

cd ../B1
echo This is file foo22 > foo
hg commit -t "commit test" -d "0 0" -u user

cd ..
hg clone A1 A2
hg clone B1 B2

cd A1
hg pull ../B1
hg update -m
hg commit -t "commit test" -d "0 0" -u user
echo bar should remain deleted.
hg manifest

cd ../B2
hg pull ../A2
hg update -m
hg commit -t "commit test" -d "0 0" -u user
echo bar should remain deleted.
hg manifest