view tests/test-excessive-merge @ 6297:fed1a9c22076

dirstate.remove: during merges, remember the previous file state We encode the previous state as a negative file size (AFAICS, previous versions of hg always have size == 0 when state == 'r'). We save the state of 'm'erged and dirty files, because they're the two states that indicate that a file has to be committed on a merge to correctly record per-file history.
author Alexis S. L. Carvalho <alexis@cecm.usp.br>
date Tue, 18 Mar 2008 04:07:39 -0300
parents c0b449154a90
children
line wrap: on
line source

#!/bin/sh

hg init

echo foo > a
echo foo > b
hg add a b

hg ci -m "test" -d "1000000 0"

echo blah > a

hg ci -m "branch a" -d "1000000 0"

hg co 0

echo blah > b

hg ci -m "branch b" -d "1000000 0"
HGMERGE=true hg merge 1

hg ci -m "merge b/a -> blah" -d "1000000 0"

hg co 1
HGMERGE=true hg merge 2
hg ci -m "merge a/b -> blah" -d "1000000 0"

hg log
hg debugindex .hg/store/00changelog.i

echo

echo 1
hg manifest --debug 1
echo 2
hg manifest --debug 2
echo 3
hg manifest --debug 3
echo 4
hg manifest --debug 4

echo

hg debugindex .hg/store/data/a.i

hg verify