Mercurial > public > mercurial-scm > hg
annotate tests/test-extdiff @ 11109:a2bc2f2d77a9
subrepo: normalize path part of URLs so that pulling subrepos from webdir works
For a "all projects at root" repo layout eg:
/main
/sub
Where subrepos are used such that a clone of main has this layout:
./main/
./main/.hgsub
./main/sub/
And the .hgsub content is:
sub = ../sub
This allows a pull from a hgweb where main and sub are exposed
at the root (or same directory level)
The current code doesn't normalize the path component of a pull
url. this results in trying to pull from
http://server.com/hg/main/../sub
Current hgweb implementation doesn't reduce the path component
so this results in a 404 error though everything is setup logically.
This patch adresses this 404 error on the puller side
normalizing the URLs used for pulling sub repos. For this
example, the URL would be reduced to http://server.com/hg/sub
Fix + test
author | Edouard Gomez <ed.gomez@free.fr> |
---|---|
date | Sat, 01 May 2010 23:05:19 +0200 |
parents | c52057614c72 |
children |
rev | line source |
---|---|
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 |
10775
c52057614c72
Tests with spaces in paths
Mads Kiilerich <mads@kiilerich.com>
parents:
9956
diff
changeset
|
39 sed 's:\(diffing [^ ]* \).*\(\/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 |
10775
c52057614c72
Tests with spaces in paths
Mads Kiilerich <mads@kiilerich.com>
parents:
9956
diff
changeset
|
57 cat > 'diff tool.py' << EOT |
8212
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 |
10775
c52057614c72
Tests with spaces in paths
Mads Kiilerich <mads@kiilerich.com>
parents:
9956
diff
changeset
|
64 chmod +x 'diff tool.py' |
c52057614c72
Tests with spaces in paths
Mads Kiilerich <mads@kiilerich.com>
parents:
9956
diff
changeset
|
65 hg extdiff -p "`pwd`/diff tool.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 |
9956
6045a8c4dbbc
extdiff: respect --option in command aliases (issue949)
Sune Foldager <cryo@cyanite.org>
parents:
8212
diff
changeset
|
68 |
6045a8c4dbbc
extdiff: respect --option in command aliases (issue949)
Sune Foldager <cryo@cyanite.org>
parents:
8212
diff
changeset
|
69 echo |
6045a8c4dbbc
extdiff: respect --option in command aliases (issue949)
Sune Foldager <cryo@cyanite.org>
parents:
8212
diff
changeset
|
70 echo % test extdiff with --option |
6045a8c4dbbc
extdiff: respect --option in command aliases (issue949)
Sune Foldager <cryo@cyanite.org>
parents:
8212
diff
changeset
|
71 hg extdiff -p echo -o this -c 1 |
6045a8c4dbbc
extdiff: respect --option in command aliases (issue949)
Sune Foldager <cryo@cyanite.org>
parents:
8212
diff
changeset
|
72 hg falabala -o this -c 1 |
6045a8c4dbbc
extdiff: respect --option in command aliases (issue949)
Sune Foldager <cryo@cyanite.org>
parents:
8212
diff
changeset
|
73 echo |