annotate tests/test-merge6 @ 2076:d007df6daf8e

Create an atomic opener that does not automatically rename on close The revlog.checkinlinesize() uses an atomic opener to replace the index file after converting it from inline to traditional .i and .d files. If this operation is interrupted, the atomic file class can overwrite a valid file with a partially written one. This patch introduces an atomic opener that does not automatically replace the destination file with the tempfile. This way an interrupted checkinlinesize() call turns into a noop.
author mason@suse.com
date Tue, 04 Apr 2006 16:38:44 -0400
parents 7544700fd931
children e506c14382fd
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
800
ec85f9e6f3b1 Don't use 'set -x', fix exports, sed and hexdump usage for Solaris.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 749
diff changeset
1 #!/bin/sh
616
d45d1c90032e Fix zombie files in merge
maf46@burn.cl.cam.ac.uk
parents:
diff changeset
2
d45d1c90032e Fix zombie files in merge
maf46@burn.cl.cam.ac.uk
parents:
diff changeset
3 cat <<'EOF' > merge
d45d1c90032e Fix zombie files in merge
maf46@burn.cl.cam.ac.uk
parents:
diff changeset
4 #!/bin/sh
d45d1c90032e Fix zombie files in merge
maf46@burn.cl.cam.ac.uk
parents:
diff changeset
5 echo merging for `basename $1`
d45d1c90032e Fix zombie files in merge
maf46@burn.cl.cam.ac.uk
parents:
diff changeset
6 EOF
d45d1c90032e Fix zombie files in merge
maf46@burn.cl.cam.ac.uk
parents:
diff changeset
7 chmod +x merge
800
ec85f9e6f3b1 Don't use 'set -x', fix exports, sed and hexdump usage for Solaris.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 749
diff changeset
8 HGMERGE=./merge; export HGMERGE
616
d45d1c90032e Fix zombie files in merge
maf46@burn.cl.cam.ac.uk
parents:
diff changeset
9
d45d1c90032e Fix zombie files in merge
maf46@burn.cl.cam.ac.uk
parents:
diff changeset
10 mkdir A1
d45d1c90032e Fix zombie files in merge
maf46@burn.cl.cam.ac.uk
parents:
diff changeset
11 cd A1
d45d1c90032e Fix zombie files in merge
maf46@burn.cl.cam.ac.uk
parents:
diff changeset
12 hg init
d45d1c90032e Fix zombie files in merge
maf46@burn.cl.cam.ac.uk
parents:
diff changeset
13 echo This is file foo1 > foo
d45d1c90032e Fix zombie files in merge
maf46@burn.cl.cam.ac.uk
parents:
diff changeset
14 echo This is file bar1 > bar
d45d1c90032e Fix zombie files in merge
maf46@burn.cl.cam.ac.uk
parents:
diff changeset
15 hg add foo bar
1933
7544700fd931 Use 'hg ci -d "1000000 0"' in tests to circumvent problem with leading zero.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 814
diff changeset
16 hg commit -m "commit text" -d "1000000 0"
616
d45d1c90032e Fix zombie files in merge
maf46@burn.cl.cam.ac.uk
parents:
diff changeset
17
d45d1c90032e Fix zombie files in merge
maf46@burn.cl.cam.ac.uk
parents:
diff changeset
18 cd ..
d45d1c90032e Fix zombie files in merge
maf46@burn.cl.cam.ac.uk
parents:
diff changeset
19 hg clone A1 B1
d45d1c90032e Fix zombie files in merge
maf46@burn.cl.cam.ac.uk
parents:
diff changeset
20
d45d1c90032e Fix zombie files in merge
maf46@burn.cl.cam.ac.uk
parents:
diff changeset
21 cd A1
d45d1c90032e Fix zombie files in merge
maf46@burn.cl.cam.ac.uk
parents:
diff changeset
22 rm bar
d45d1c90032e Fix zombie files in merge
maf46@burn.cl.cam.ac.uk
parents:
diff changeset
23 hg remove bar
1933
7544700fd931 Use 'hg ci -d "1000000 0"' in tests to circumvent problem with leading zero.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 814
diff changeset
24 hg commit -m "commit test" -d "1000000 0"
616
d45d1c90032e Fix zombie files in merge
maf46@burn.cl.cam.ac.uk
parents:
diff changeset
25
d45d1c90032e Fix zombie files in merge
maf46@burn.cl.cam.ac.uk
parents:
diff changeset
26 cd ../B1
d45d1c90032e Fix zombie files in merge
maf46@burn.cl.cam.ac.uk
parents:
diff changeset
27 echo This is file foo22 > foo
1933
7544700fd931 Use 'hg ci -d "1000000 0"' in tests to circumvent problem with leading zero.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 814
diff changeset
28 hg commit -m "commit test" -d "1000000 0"
616
d45d1c90032e Fix zombie files in merge
maf46@burn.cl.cam.ac.uk
parents:
diff changeset
29
d45d1c90032e Fix zombie files in merge
maf46@burn.cl.cam.ac.uk
parents:
diff changeset
30 cd ..
d45d1c90032e Fix zombie files in merge
maf46@burn.cl.cam.ac.uk
parents:
diff changeset
31 hg clone A1 A2
d45d1c90032e Fix zombie files in merge
maf46@burn.cl.cam.ac.uk
parents:
diff changeset
32 hg clone B1 B2
d45d1c90032e Fix zombie files in merge
maf46@burn.cl.cam.ac.uk
parents:
diff changeset
33
d45d1c90032e Fix zombie files in merge
maf46@burn.cl.cam.ac.uk
parents:
diff changeset
34 cd A1
d45d1c90032e Fix zombie files in merge
maf46@burn.cl.cam.ac.uk
parents:
diff changeset
35 hg pull ../B1
d45d1c90032e Fix zombie files in merge
maf46@burn.cl.cam.ac.uk
parents:
diff changeset
36 hg update -m
1933
7544700fd931 Use 'hg ci -d "1000000 0"' in tests to circumvent problem with leading zero.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 814
diff changeset
37 hg commit -m "commit test" -d "1000000 0"
616
d45d1c90032e Fix zombie files in merge
maf46@burn.cl.cam.ac.uk
parents:
diff changeset
38 echo bar should remain deleted.
d45d1c90032e Fix zombie files in merge
maf46@burn.cl.cam.ac.uk
parents:
diff changeset
39 hg manifest
d45d1c90032e Fix zombie files in merge
maf46@burn.cl.cam.ac.uk
parents:
diff changeset
40
d45d1c90032e Fix zombie files in merge
maf46@burn.cl.cam.ac.uk
parents:
diff changeset
41 cd ../B2
d45d1c90032e Fix zombie files in merge
maf46@burn.cl.cam.ac.uk
parents:
diff changeset
42 hg pull ../A2
d45d1c90032e Fix zombie files in merge
maf46@burn.cl.cam.ac.uk
parents:
diff changeset
43 hg update -m
1933
7544700fd931 Use 'hg ci -d "1000000 0"' in tests to circumvent problem with leading zero.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 814
diff changeset
44 hg commit -m "commit test" -d "1000000 0"
616
d45d1c90032e Fix zombie files in merge
maf46@burn.cl.cam.ac.uk
parents:
diff changeset
45 echo bar should remain deleted.
d45d1c90032e Fix zombie files in merge
maf46@burn.cl.cam.ac.uk
parents:
diff changeset
46 hg manifest