tests/test-filebranch
author Brendan Cully <brendan@kublai.com>
Tue, 31 Oct 2006 17:24:42 -0800
changeset 3604 437489d8dfbf
parent 2283 e506c14382fd
child 3736 ad3d5b4367cb
permissions -rwxr-xr-x
mq: handle qpush -a with empty series
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
990
5007e0bdeed2 Fix long-standing excessive file merges
mpm@selenic.com
parents:
diff changeset
     1
#!/bin/sh
5007e0bdeed2 Fix long-standing excessive file merges
mpm@selenic.com
parents:
diff changeset
     2
5007e0bdeed2 Fix long-standing excessive file merges
mpm@selenic.com
parents:
diff changeset
     3
# This test makes sure that we don't mark a file as merged with its ancestor
5007e0bdeed2 Fix long-standing excessive file merges
mpm@selenic.com
parents:
diff changeset
     4
# when we do a merge.
5007e0bdeed2 Fix long-standing excessive file merges
mpm@selenic.com
parents:
diff changeset
     5
5007e0bdeed2 Fix long-standing excessive file merges
mpm@selenic.com
parents:
diff changeset
     6
cat <<'EOF' > merge
5007e0bdeed2 Fix long-standing excessive file merges
mpm@selenic.com
parents:
diff changeset
     7
#!/bin/sh
5007e0bdeed2 Fix long-standing excessive file merges
mpm@selenic.com
parents:
diff changeset
     8
echo merging for `basename $1`
5007e0bdeed2 Fix long-standing excessive file merges
mpm@selenic.com
parents:
diff changeset
     9
EOF
5007e0bdeed2 Fix long-standing excessive file merges
mpm@selenic.com
parents:
diff changeset
    10
chmod +x merge
5007e0bdeed2 Fix long-standing excessive file merges
mpm@selenic.com
parents:
diff changeset
    11
5007e0bdeed2 Fix long-standing excessive file merges
mpm@selenic.com
parents:
diff changeset
    12
echo creating base
5007e0bdeed2 Fix long-standing excessive file merges
mpm@selenic.com
parents:
diff changeset
    13
hg init a
5007e0bdeed2 Fix long-standing excessive file merges
mpm@selenic.com
parents:
diff changeset
    14
cd a
5007e0bdeed2 Fix long-standing excessive file merges
mpm@selenic.com
parents:
diff changeset
    15
echo 1 > foo
5007e0bdeed2 Fix long-standing excessive file merges
mpm@selenic.com
parents:
diff changeset
    16
echo 1 > bar
5007e0bdeed2 Fix long-standing excessive file merges
mpm@selenic.com
parents:
diff changeset
    17
echo 1 > baz
5007e0bdeed2 Fix long-standing excessive file merges
mpm@selenic.com
parents:
diff changeset
    18
echo 1 > quux
5007e0bdeed2 Fix long-standing excessive file merges
mpm@selenic.com
parents:
diff changeset
    19
hg add foo bar baz quux
1933
7544700fd931 Use 'hg ci -d "1000000 0"' in tests to circumvent problem with leading zero.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 993
diff changeset
    20
hg commit -m "base" -d "1000000 0"
990
5007e0bdeed2 Fix long-standing excessive file merges
mpm@selenic.com
parents:
diff changeset
    21
5007e0bdeed2 Fix long-standing excessive file merges
mpm@selenic.com
parents:
diff changeset
    22
cd ..
5007e0bdeed2 Fix long-standing excessive file merges
mpm@selenic.com
parents:
diff changeset
    23
hg clone a b
5007e0bdeed2 Fix long-standing excessive file merges
mpm@selenic.com
parents:
diff changeset
    24
5007e0bdeed2 Fix long-standing excessive file merges
mpm@selenic.com
parents:
diff changeset
    25
echo creating branch a
5007e0bdeed2 Fix long-standing excessive file merges
mpm@selenic.com
parents:
diff changeset
    26
cd a
5007e0bdeed2 Fix long-standing excessive file merges
mpm@selenic.com
parents:
diff changeset
    27
echo 2a > foo
5007e0bdeed2 Fix long-standing excessive file merges
mpm@selenic.com
parents:
diff changeset
    28
echo 2a > bar
1933
7544700fd931 Use 'hg ci -d "1000000 0"' in tests to circumvent problem with leading zero.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 993
diff changeset
    29
hg commit -m "branch a" -d "1000000 0"
990
5007e0bdeed2 Fix long-standing excessive file merges
mpm@selenic.com
parents:
diff changeset
    30
5007e0bdeed2 Fix long-standing excessive file merges
mpm@selenic.com
parents:
diff changeset
    31
echo creating branch b
5007e0bdeed2 Fix long-standing excessive file merges
mpm@selenic.com
parents:
diff changeset
    32
5007e0bdeed2 Fix long-standing excessive file merges
mpm@selenic.com
parents:
diff changeset
    33
cd ..
5007e0bdeed2 Fix long-standing excessive file merges
mpm@selenic.com
parents:
diff changeset
    34
cd b
5007e0bdeed2 Fix long-standing excessive file merges
mpm@selenic.com
parents:
diff changeset
    35
echo 2b > foo
5007e0bdeed2 Fix long-standing excessive file merges
mpm@selenic.com
parents:
diff changeset
    36
echo 2b > baz
1933
7544700fd931 Use 'hg ci -d "1000000 0"' in tests to circumvent problem with leading zero.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 993
diff changeset
    37
hg commit -m "branch b" -d "1000000 0"
990
5007e0bdeed2 Fix long-standing excessive file merges
mpm@selenic.com
parents:
diff changeset
    38
5007e0bdeed2 Fix long-standing excessive file merges
mpm@selenic.com
parents:
diff changeset
    39
echo "we shouldn't have anything but n state here"
5007e0bdeed2 Fix long-standing excessive file merges
mpm@selenic.com
parents:
diff changeset
    40
hg debugstate | cut -b 1-16,35-
5007e0bdeed2 Fix long-standing excessive file merges
mpm@selenic.com
parents:
diff changeset
    41
5007e0bdeed2 Fix long-standing excessive file merges
mpm@selenic.com
parents:
diff changeset
    42
echo merging
5007e0bdeed2 Fix long-standing excessive file merges
mpm@selenic.com
parents:
diff changeset
    43
hg pull ../a
2283
e506c14382fd deprecate 'update -m'. use 'merge' instead.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 1933
diff changeset
    44
env HGMERGE=../merge hg merge -v
990
5007e0bdeed2 Fix long-standing excessive file merges
mpm@selenic.com
parents:
diff changeset
    45
5007e0bdeed2 Fix long-standing excessive file merges
mpm@selenic.com
parents:
diff changeset
    46
echo 2m > foo
5007e0bdeed2 Fix long-standing excessive file merges
mpm@selenic.com
parents:
diff changeset
    47
echo 2b > baz
5007e0bdeed2 Fix long-standing excessive file merges
mpm@selenic.com
parents:
diff changeset
    48
echo new > quux
5007e0bdeed2 Fix long-standing excessive file merges
mpm@selenic.com
parents:
diff changeset
    49
5007e0bdeed2 Fix long-standing excessive file merges
mpm@selenic.com
parents:
diff changeset
    50
echo "we shouldn't have anything but foo in merge state here"
5007e0bdeed2 Fix long-standing excessive file merges
mpm@selenic.com
parents:
diff changeset
    51
hg debugstate | cut -b 1-16,35- | grep "^m"
5007e0bdeed2 Fix long-standing excessive file merges
mpm@selenic.com
parents:
diff changeset
    52
1933
7544700fd931 Use 'hg ci -d "1000000 0"' in tests to circumvent problem with leading zero.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 993
diff changeset
    53
hg ci -m "merge" -d "1000000 0"
990
5007e0bdeed2 Fix long-standing excessive file merges
mpm@selenic.com
parents:
diff changeset
    54
5007e0bdeed2 Fix long-standing excessive file merges
mpm@selenic.com
parents:
diff changeset
    55
echo "main: we should have a merge here"
5007e0bdeed2 Fix long-standing excessive file merges
mpm@selenic.com
parents:
diff changeset
    56
hg debugindex .hg/00changelog.i
5007e0bdeed2 Fix long-standing excessive file merges
mpm@selenic.com
parents:
diff changeset
    57
993
6f274afc05c7 Clean up some merge logic
mpm@selenic.com
parents: 990
diff changeset
    58
echo "log should show foo and quux changed"
6f274afc05c7 Clean up some merge logic
mpm@selenic.com
parents: 990
diff changeset
    59
hg log -v -r tip
6f274afc05c7 Clean up some merge logic
mpm@selenic.com
parents: 990
diff changeset
    60
990
5007e0bdeed2 Fix long-standing excessive file merges
mpm@selenic.com
parents:
diff changeset
    61
echo "foo: we should have a merge here"
5007e0bdeed2 Fix long-standing excessive file merges
mpm@selenic.com
parents:
diff changeset
    62
hg debugindex .hg/data/foo.i
5007e0bdeed2 Fix long-standing excessive file merges
mpm@selenic.com
parents:
diff changeset
    63
5007e0bdeed2 Fix long-standing excessive file merges
mpm@selenic.com
parents:
diff changeset
    64
echo "bar: we shouldn't have a merge here"
5007e0bdeed2 Fix long-standing excessive file merges
mpm@selenic.com
parents:
diff changeset
    65
hg debugindex .hg/data/bar.i
5007e0bdeed2 Fix long-standing excessive file merges
mpm@selenic.com
parents:
diff changeset
    66
5007e0bdeed2 Fix long-standing excessive file merges
mpm@selenic.com
parents:
diff changeset
    67
echo "baz: we shouldn't have a merge here"
5007e0bdeed2 Fix long-standing excessive file merges
mpm@selenic.com
parents:
diff changeset
    68
hg debugindex .hg/data/baz.i
5007e0bdeed2 Fix long-standing excessive file merges
mpm@selenic.com
parents:
diff changeset
    69
5007e0bdeed2 Fix long-standing excessive file merges
mpm@selenic.com
parents:
diff changeset
    70
echo "quux: we shouldn't have a merge here"
5007e0bdeed2 Fix long-standing excessive file merges
mpm@selenic.com
parents:
diff changeset
    71
hg debugindex .hg/data/quux.i
5007e0bdeed2 Fix long-standing excessive file merges
mpm@selenic.com
parents:
diff changeset
    72
993
6f274afc05c7 Clean up some merge logic
mpm@selenic.com
parents: 990
diff changeset
    73
echo "manifest entries should match tips of all files"
6f274afc05c7 Clean up some merge logic
mpm@selenic.com
parents: 990
diff changeset
    74
hg manifest
6f274afc05c7 Clean up some merge logic
mpm@selenic.com
parents: 990
diff changeset
    75
990
5007e0bdeed2 Fix long-standing excessive file merges
mpm@selenic.com
parents:
diff changeset
    76
echo "everything should be clean now"
5007e0bdeed2 Fix long-standing excessive file merges
mpm@selenic.com
parents:
diff changeset
    77
hg status
5007e0bdeed2 Fix long-standing excessive file merges
mpm@selenic.com
parents:
diff changeset
    78
5007e0bdeed2 Fix long-standing excessive file merges
mpm@selenic.com
parents:
diff changeset
    79
hg verify