tests/test-double-merge
author Bryan O'Sullivan <bos@serpentine.com>
Fri, 08 May 2009 15:52:26 -0700
changeset 8330 7de68012f86e
parent 5057 99a4592ea886
child 8387 50b6af595e0c
permissions -rwxr-xr-x
Windows: improve performance via buffered I/O The posixfile_nt code hits the win32 file API directly, which essentially amounts to performing a system call for every read and write. This is slow. We add a C extension that lets us use a Python file object instead, but preserve our desired POSIX-like semantics (the ability to rename or delete a file that is being accessed). If the C extension is not available (e.g. in a VPS environment without a compiler), we fall back to the posixfile_nt code.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
5042
f191bc3916f7 merge: do early copy to deal with issue636
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
     1
#!/bin/sh
f191bc3916f7 merge: do early copy to deal with issue636
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
     2
f191bc3916f7 merge: do early copy to deal with issue636
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
     3
hg init repo
f191bc3916f7 merge: do early copy to deal with issue636
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
     4
cd repo
f191bc3916f7 merge: do early copy to deal with issue636
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
     5
f191bc3916f7 merge: do early copy to deal with issue636
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
     6
echo line 1 > foo
f191bc3916f7 merge: do early copy to deal with issue636
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
     7
hg ci -qAm 'add foo' -d "1000000 0"
f191bc3916f7 merge: do early copy to deal with issue636
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
     8
f191bc3916f7 merge: do early copy to deal with issue636
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
     9
# copy foo to bar and change both files
f191bc3916f7 merge: do early copy to deal with issue636
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
    10
hg cp foo bar
f191bc3916f7 merge: do early copy to deal with issue636
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
    11
echo line 2-1 >> foo
f191bc3916f7 merge: do early copy to deal with issue636
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
    12
echo line 2-2 >> bar
f191bc3916f7 merge: do early copy to deal with issue636
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
    13
hg ci -m 'cp foo bar; change both' -d "1000000 0"
f191bc3916f7 merge: do early copy to deal with issue636
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
    14
f191bc3916f7 merge: do early copy to deal with issue636
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
    15
# in another branch, change foo in a way that doesn't conflict with
f191bc3916f7 merge: do early copy to deal with issue636
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
    16
# the other changes
f191bc3916f7 merge: do early copy to deal with issue636
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
    17
hg up -qC 0
5057
99a4592ea886 The >| redirection does not exist in plain sh.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 5042
diff changeset
    18
echo line 0 > foo
5042
f191bc3916f7 merge: do early copy to deal with issue636
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
    19
hg cat foo >> foo
f191bc3916f7 merge: do early copy to deal with issue636
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
    20
hg ci -m 'change foo' -d "1000000 0"
f191bc3916f7 merge: do early copy to deal with issue636
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
    21
f191bc3916f7 merge: do early copy to deal with issue636
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
    22
# we get conflicts that shouldn't be there
f191bc3916f7 merge: do early copy to deal with issue636
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
    23
hg merge --debug
f191bc3916f7 merge: do early copy to deal with issue636
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
    24
f191bc3916f7 merge: do early copy to deal with issue636
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
    25
echo "-- foo --"
f191bc3916f7 merge: do early copy to deal with issue636
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
    26
cat foo
f191bc3916f7 merge: do early copy to deal with issue636
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
    27
f191bc3916f7 merge: do early copy to deal with issue636
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
    28
echo "-- bar --"
f191bc3916f7 merge: do early copy to deal with issue636
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
    29
cat bar
f191bc3916f7 merge: do early copy to deal with issue636
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
    30