tests/test-manifest-merging
author Augie Fackler <durin42@gmail.com>
Thu, 11 Feb 2010 16:37:43 -0600
changeset 10418 5fc090ba08a6
parent 3988 9dcf9d45cab8
permissions -rwxr-xr-x
localrepo: add optional validation (defaults to off) for incoming changes This verifies that all manifests are present for incoming changes, and all files for those manifests are also present. This is a simple first-pass, and could be better, but seems like a valuable thing to have, as I've seen pushes in the past that propagated revlog corruption.

#!/bin/sh

echo % init foo-base
hg init foo-base

echo % create alpha in first repo
cd foo-base
echo 'alpha' > alpha
hg ci -A -m 'add alpha' -d '1 0'
cd ..

echo % clone foo-base to foo-work
hg clone foo-base foo-work

echo % create beta in second repo
cd foo-work
echo 'beta' > beta
hg ci -A -m 'add beta' -d '2 0'
cd ..

echo % create gamma in first repo
cd foo-base
echo 'gamma' > gamma
hg ci -A -m 'add gamma' -d '3 0'
cd ..

echo % pull into work and merge
cd foo-work
hg pull -q
hg merge

echo % revert to changeset 1 to simulate a failed merge
rm alpha beta gamma
hg up -C 1