tests/test-extdiff
author Henrik Stuart <hg@hstuart.dk>
Tue, 09 Jun 2009 08:59:49 +0200
changeset 8756 6019e6517f95
parent 8212 bf795c34c63d
child 9956 6045a8c4dbbc
permissions -rwxr-xr-x
convert: better support for CVS branchpoints (issue1447) This records the branches starting at individual CVS file revisions, using the symbolic names map rather than just the branches information. This information is used to generate Mercurial changesets. Despite the changes, the CVS conversion still suffers heavily from cvsps' deficiencies in generating a correct representation of the CVS repository history.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
2906
453097750fbf extdiff: fix bugs. add test.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
diff changeset
     1
#!/bin/sh
453097750fbf extdiff: fix bugs. add test.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
diff changeset
     2
2990
61fcd9fac434 Make tests append settings to $HGRCPATH instead of $HGTMP/.hgrc
Thomas Arendsen Hein <thomas@intevation.de>
parents: 2932
diff changeset
     3
echo "[extensions]" >> $HGRCPATH
61fcd9fac434 Make tests append settings to $HGRCPATH instead of $HGTMP/.hgrc
Thomas Arendsen Hein <thomas@intevation.de>
parents: 2932
diff changeset
     4
echo "extdiff=" >> $HGRCPATH
2906
453097750fbf extdiff: fix bugs. add test.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
diff changeset
     5
453097750fbf extdiff: fix bugs. add test.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
diff changeset
     6
hg init a
453097750fbf extdiff: fix bugs. add test.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
diff changeset
     7
cd a
453097750fbf extdiff: fix bugs. add test.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
diff changeset
     8
echo a > a
5137
2be225ea5722 extdiff: do single file diffs from the wc with no copy
Brad Schick <schickb@gmail.com>
parents: 3751
diff changeset
     9
echo b > b
2906
453097750fbf extdiff: fix bugs. add test.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
diff changeset
    10
hg add
5137
2be225ea5722 extdiff: do single file diffs from the wc with no copy
Brad Schick <schickb@gmail.com>
parents: 3751
diff changeset
    11
# should diff cloned directories
3751
797c6e70092b Don't require a diff which accepts the -N option.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 3330
diff changeset
    12
hg extdiff -o -r $opt
2906
453097750fbf extdiff: fix bugs. add test.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
diff changeset
    13
2990
61fcd9fac434 Make tests append settings to $HGRCPATH instead of $HGTMP/.hgrc
Thomas Arendsen Hein <thomas@intevation.de>
parents: 2932
diff changeset
    14
echo "[extdiff]" >> $HGRCPATH
61fcd9fac434 Make tests append settings to $HGRCPATH instead of $HGTMP/.hgrc
Thomas Arendsen Hein <thomas@intevation.de>
parents: 2932
diff changeset
    15
echo "cmd.falabala=echo" >> $HGRCPATH
61fcd9fac434 Make tests append settings to $HGRCPATH instead of $HGTMP/.hgrc
Thomas Arendsen Hein <thomas@intevation.de>
parents: 2932
diff changeset
    16
echo "opts.falabala=diffing" >> $HGRCPATH
2906
453097750fbf extdiff: fix bugs. add test.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
diff changeset
    17
453097750fbf extdiff: fix bugs. add test.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
diff changeset
    18
hg falabala
453097750fbf extdiff: fix bugs. add test.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
diff changeset
    19
453097750fbf extdiff: fix bugs. add test.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
diff changeset
    20
hg help falabala
453097750fbf extdiff: fix bugs. add test.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
diff changeset
    21
453097750fbf extdiff: fix bugs. add test.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
diff changeset
    22
hg ci -d '0 0' -mtest1
453097750fbf extdiff: fix bugs. add test.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
diff changeset
    23
453097750fbf extdiff: fix bugs. add test.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
diff changeset
    24
echo b >> a
453097750fbf extdiff: fix bugs. add test.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
diff changeset
    25
hg ci -d '1 0' -mtest2
453097750fbf extdiff: fix bugs. add test.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
diff changeset
    26
5143
d4fa6bafc43a Remove trailing spaces, fix indentation
Thomas Arendsen Hein <thomas@intevation.de>
parents: 5137
diff changeset
    27
# should diff cloned files directly
3330
49966b5ab16f fix traceback of extdiff after a merge
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 2990
diff changeset
    28
hg falabala -r 0:1
49966b5ab16f fix traceback of extdiff after a merge
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 2990
diff changeset
    29
49966b5ab16f fix traceback of extdiff after a merge
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 2990
diff changeset
    30
# test diff during merge
8065
66d0a03d3afc extdiff: preserve execute-bit across copies (issue1562)
Patrick Mezard <pmezard@gmail.com>
parents: 7758
diff changeset
    31
hg update -C 0
5137
2be225ea5722 extdiff: do single file diffs from the wc with no copy
Brad Schick <schickb@gmail.com>
parents: 3751
diff changeset
    32
echo c >> c
2be225ea5722 extdiff: do single file diffs from the wc with no copy
Brad Schick <schickb@gmail.com>
parents: 3751
diff changeset
    33
hg add c
3330
49966b5ab16f fix traceback of extdiff after a merge
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 2990
diff changeset
    34
hg ci -m "new branch" -d '1 0'
7758
e81e6c996e99 extdiff: add --change option to display single changeset diff
Gilles Moris <gilles.moris@free.fr>
parents: 5143
diff changeset
    35
hg merge 1
5143
d4fa6bafc43a Remove trailing spaces, fix indentation
Thomas Arendsen Hein <thomas@intevation.de>
parents: 5137
diff changeset
    36
# should diff cloned file against wc file
7758
e81e6c996e99 extdiff: add --change option to display single changeset diff
Gilles Moris <gilles.moris@free.fr>
parents: 5143
diff changeset
    37
hg falabala > out
5137
2be225ea5722 extdiff: do single file diffs from the wc with no copy
Brad Schick <schickb@gmail.com>
parents: 3751
diff changeset
    38
# cleanup the output since the wc is a tmp directory
2be225ea5722 extdiff: do single file diffs from the wc with no copy
Brad Schick <schickb@gmail.com>
parents: 3751
diff changeset
    39
sed  's:\(.* \).*\(\/test-extdiff\):\1[tmp]\2:' out
7758
e81e6c996e99 extdiff: add --change option to display single changeset diff
Gilles Moris <gilles.moris@free.fr>
parents: 5143
diff changeset
    40
# test --change option
e81e6c996e99 extdiff: add --change option to display single changeset diff
Gilles Moris <gilles.moris@free.fr>
parents: 5143
diff changeset
    41
hg ci -d '2 0' -mtest3
e81e6c996e99 extdiff: add --change option to display single changeset diff
Gilles Moris <gilles.moris@free.fr>
parents: 5143
diff changeset
    42
hg falabala -c 1
e81e6c996e99 extdiff: add --change option to display single changeset diff
Gilles Moris <gilles.moris@free.fr>
parents: 5143
diff changeset
    43
# check diff are made from the first parent
e81e6c996e99 extdiff: add --change option to display single changeset diff
Gilles Moris <gilles.moris@free.fr>
parents: 5143
diff changeset
    44
hg falabala -c 3 || echo "diff-like tools yield a non-zero exit code"
e81e6c996e99 extdiff: add --change option to display single changeset diff
Gilles Moris <gilles.moris@free.fr>
parents: 5143
diff changeset
    45
#hg log
8065
66d0a03d3afc extdiff: preserve execute-bit across copies (issue1562)
Patrick Mezard <pmezard@gmail.com>
parents: 7758
diff changeset
    46
66d0a03d3afc extdiff: preserve execute-bit across copies (issue1562)
Patrick Mezard <pmezard@gmail.com>
parents: 7758
diff changeset
    47
echo
66d0a03d3afc extdiff: preserve execute-bit across copies (issue1562)
Patrick Mezard <pmezard@gmail.com>
parents: 7758
diff changeset
    48
echo '% test extdiff of multiple files in tmp dir:'
66d0a03d3afc extdiff: preserve execute-bit across copies (issue1562)
Patrick Mezard <pmezard@gmail.com>
parents: 7758
diff changeset
    49
hg update -C 0 > /dev/null
66d0a03d3afc extdiff: preserve execute-bit across copies (issue1562)
Patrick Mezard <pmezard@gmail.com>
parents: 7758
diff changeset
    50
echo changed > a
66d0a03d3afc extdiff: preserve execute-bit across copies (issue1562)
Patrick Mezard <pmezard@gmail.com>
parents: 7758
diff changeset
    51
echo changed > b
66d0a03d3afc extdiff: preserve execute-bit across copies (issue1562)
Patrick Mezard <pmezard@gmail.com>
parents: 7758
diff changeset
    52
chmod +x b
66d0a03d3afc extdiff: preserve execute-bit across copies (issue1562)
Patrick Mezard <pmezard@gmail.com>
parents: 7758
diff changeset
    53
echo '% diff in working directory, before'
66d0a03d3afc extdiff: preserve execute-bit across copies (issue1562)
Patrick Mezard <pmezard@gmail.com>
parents: 7758
diff changeset
    54
hg diff --git
66d0a03d3afc extdiff: preserve execute-bit across copies (issue1562)
Patrick Mezard <pmezard@gmail.com>
parents: 7758
diff changeset
    55
echo '% edit with extdiff -p'
66d0a03d3afc extdiff: preserve execute-bit across copies (issue1562)
Patrick Mezard <pmezard@gmail.com>
parents: 7758
diff changeset
    56
# prepare custom diff/edit tool
8212
bf795c34c63d test-extdiff: replace shell script with python for portability
Patrick Mezard <pmezard@gmail.com>
parents: 8065
diff changeset
    57
cat > differ.py << EOT
bf795c34c63d test-extdiff: replace shell script with python for portability
Patrick Mezard <pmezard@gmail.com>
parents: 8065
diff changeset
    58
#!/usr/bin/env python
bf795c34c63d test-extdiff: replace shell script with python for portability
Patrick Mezard <pmezard@gmail.com>
parents: 8065
diff changeset
    59
import time
bf795c34c63d test-extdiff: replace shell script with python for portability
Patrick Mezard <pmezard@gmail.com>
parents: 8065
diff changeset
    60
time.sleep(1) # avoid unchanged-timestamp problems
bf795c34c63d test-extdiff: replace shell script with python for portability
Patrick Mezard <pmezard@gmail.com>
parents: 8065
diff changeset
    61
file('a/a', 'ab').write('edited\n')
bf795c34c63d test-extdiff: replace shell script with python for portability
Patrick Mezard <pmezard@gmail.com>
parents: 8065
diff changeset
    62
file('a/b', 'ab').write('edited\n')
8065
66d0a03d3afc extdiff: preserve execute-bit across copies (issue1562)
Patrick Mezard <pmezard@gmail.com>
parents: 7758
diff changeset
    63
EOT
8212
bf795c34c63d test-extdiff: replace shell script with python for portability
Patrick Mezard <pmezard@gmail.com>
parents: 8065
diff changeset
    64
chmod +x differ.py
bf795c34c63d test-extdiff: replace shell script with python for portability
Patrick Mezard <pmezard@gmail.com>
parents: 8065
diff changeset
    65
hg extdiff -p `pwd`/differ.py # will change to /tmp/extdiff.TMP and populate directories a.TMP and a and start tool
8065
66d0a03d3afc extdiff: preserve execute-bit across copies (issue1562)
Patrick Mezard <pmezard@gmail.com>
parents: 7758
diff changeset
    66
echo '% diff in working directory, after'
66d0a03d3afc extdiff: preserve execute-bit across copies (issue1562)
Patrick Mezard <pmezard@gmail.com>
parents: 7758
diff changeset
    67
hg diff --git