Mercurial > hg
annotate tests/test-subrepo-svn @ 11628:68a30daead3f stable
inotify: make inotifydirstate.status() returns a tuple of lists.
This makes it consistent with dirstate.status(), which is important if
there are other extensions messing with the output of status(). Those
extensions can safely assume that dirstate.status() returns a tuple of
lists, because its docstring says it does. But
inotifystatus.dirstate() returns a list of lists, which can break
those other extensions.
author | Greg Ward <greg-hg@gerg.ca> |
---|---|
date | Tue, 20 Jul 2010 14:00:47 -0400 |
parents | 0bf79efeaa20 |
children |
rev | line source |
---|---|
10178 | 1 #!/bin/sh |
2 | |
3 "$TESTDIR/hghave" svn || exit 80 | |
4 | |
10198
c2168d170f05
test-subrepo-svn: normalize OS specific path separator
Patrick Mezard <pmezard@gmail.com>
parents:
10196
diff
changeset
|
5 fix_path() |
c2168d170f05
test-subrepo-svn: normalize OS specific path separator
Patrick Mezard <pmezard@gmail.com>
parents:
10196
diff
changeset
|
6 { |
c2168d170f05
test-subrepo-svn: normalize OS specific path separator
Patrick Mezard <pmezard@gmail.com>
parents:
10196
diff
changeset
|
7 tr '\\' / |
c2168d170f05
test-subrepo-svn: normalize OS specific path separator
Patrick Mezard <pmezard@gmail.com>
parents:
10196
diff
changeset
|
8 } |
c2168d170f05
test-subrepo-svn: normalize OS specific path separator
Patrick Mezard <pmezard@gmail.com>
parents:
10196
diff
changeset
|
9 |
c2168d170f05
test-subrepo-svn: normalize OS specific path separator
Patrick Mezard <pmezard@gmail.com>
parents:
10196
diff
changeset
|
10 escapedwd=`pwd | fix_path` |
c2168d170f05
test-subrepo-svn: normalize OS specific path separator
Patrick Mezard <pmezard@gmail.com>
parents:
10196
diff
changeset
|
11 # SVN wants all paths to start with a slash. Unfortunately, |
c2168d170f05
test-subrepo-svn: normalize OS specific path separator
Patrick Mezard <pmezard@gmail.com>
parents:
10196
diff
changeset
|
12 # Windows ones don't. Handle that. |
10775
c52057614c72
Tests with spaces in paths
Mads Kiilerich <mads@kiilerich.com>
parents:
10457
diff
changeset
|
13 expr "$escapedwd" : "\/" > /dev/null |
10198
c2168d170f05
test-subrepo-svn: normalize OS specific path separator
Patrick Mezard <pmezard@gmail.com>
parents:
10196
diff
changeset
|
14 if [ $? -ne 0 ]; then |
10775
c52057614c72
Tests with spaces in paths
Mads Kiilerich <mads@kiilerich.com>
parents:
10457
diff
changeset
|
15 escapedwd="/$escapedwd" |
10198
c2168d170f05
test-subrepo-svn: normalize OS specific path separator
Patrick Mezard <pmezard@gmail.com>
parents:
10196
diff
changeset
|
16 fi |
10791
48c8eb9de0c8
test-subrepo-svn: properly escape the url, make it work for svn 1.5 again
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
10775
diff
changeset
|
17 escapedwd=`python -c "import urllib, sys; sys.stdout.write(urllib.quote(sys.argv[1]))" "$escapedwd"` |
10775
c52057614c72
Tests with spaces in paths
Mads Kiilerich <mads@kiilerich.com>
parents:
10457
diff
changeset
|
18 filterpath="s|$escapedwd|/root|" |
10954
33119d0252c1
subrepo: fix repo root path handling in svn subrepo
Brett Cannon <brett@python.org>
parents:
10791
diff
changeset
|
19 filteroutofdate='s/ in transaction.*/ is out of date/;s/Out of date: /File /' |
33119d0252c1
subrepo: fix repo root path handling in svn subrepo
Brett Cannon <brett@python.org>
parents:
10791
diff
changeset
|
20 filterexternal="s|Fetching external item into '.*/s/externals'|Fetching external item into 's/externals'|g" |
10178 | 21 |
22 echo % create subversion repo | |
23 | |
24 SVNREPO="file://$escapedwd/svn-repo" | |
10267
7e3a685be2f3
test-subrepo-svn: remove bashism
Mads Kiilerich <mads@kiilerich.com>
parents:
10198
diff
changeset
|
25 WCROOT="`pwd`/svn-wc" |
10178 | 26 svnadmin create svn-repo |
10775
c52057614c72
Tests with spaces in paths
Mads Kiilerich <mads@kiilerich.com>
parents:
10457
diff
changeset
|
27 svn co "$SVNREPO" svn-wc |
10178 | 28 cd svn-wc |
10273
e898bc7810ad
subrepo: handle svn externals and meta changes (issue1982)
Patrick Mezard <pmezard@gmail.com>
parents:
10267
diff
changeset
|
29 mkdir src |
e898bc7810ad
subrepo: handle svn externals and meta changes (issue1982)
Patrick Mezard <pmezard@gmail.com>
parents:
10267
diff
changeset
|
30 echo alpha > src/alpha |
e898bc7810ad
subrepo: handle svn externals and meta changes (issue1982)
Patrick Mezard <pmezard@gmail.com>
parents:
10267
diff
changeset
|
31 svn add src |
e898bc7810ad
subrepo: handle svn externals and meta changes (issue1982)
Patrick Mezard <pmezard@gmail.com>
parents:
10267
diff
changeset
|
32 mkdir externals |
e898bc7810ad
subrepo: handle svn externals and meta changes (issue1982)
Patrick Mezard <pmezard@gmail.com>
parents:
10267
diff
changeset
|
33 echo other > externals/other |
e898bc7810ad
subrepo: handle svn externals and meta changes (issue1982)
Patrick Mezard <pmezard@gmail.com>
parents:
10267
diff
changeset
|
34 svn add externals |
10178 | 35 svn ci -m 'Add alpha' |
10273
e898bc7810ad
subrepo: handle svn externals and meta changes (issue1982)
Patrick Mezard <pmezard@gmail.com>
parents:
10267
diff
changeset
|
36 svn up |
e898bc7810ad
subrepo: handle svn externals and meta changes (issue1982)
Patrick Mezard <pmezard@gmail.com>
parents:
10267
diff
changeset
|
37 cat > extdef <<EOF |
10791
48c8eb9de0c8
test-subrepo-svn: properly escape the url, make it work for svn 1.5 again
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
10775
diff
changeset
|
38 externals -r1 $SVNREPO/externals |
10273
e898bc7810ad
subrepo: handle svn externals and meta changes (issue1982)
Patrick Mezard <pmezard@gmail.com>
parents:
10267
diff
changeset
|
39 EOF |
e898bc7810ad
subrepo: handle svn externals and meta changes (issue1982)
Patrick Mezard <pmezard@gmail.com>
parents:
10267
diff
changeset
|
40 svn propset -F extdef svn:externals src |
e898bc7810ad
subrepo: handle svn externals and meta changes (issue1982)
Patrick Mezard <pmezard@gmail.com>
parents:
10267
diff
changeset
|
41 svn ci -m 'Setting externals' |
10178 | 42 cd .. |
43 | |
44 echo % create hg repo | |
45 mkdir sub | |
46 cd sub | |
47 hg init t | |
48 cd t | |
49 | |
50 echo % first revision, no sub | |
51 echo a > a | |
52 hg ci -Am0 | |
53 | |
10457
4f38d03d4975
subrepo: make sure that the source path is stripped
David Soria Parra <dsp@php.net>
parents:
10423
diff
changeset
|
54 echo % add first svn sub with leading whitespaces |
4f38d03d4975
subrepo: make sure that the source path is stripped
David Soria Parra <dsp@php.net>
parents:
10423
diff
changeset
|
55 echo "s = [svn] $SVNREPO/src" >> .hgsub |
10775
c52057614c72
Tests with spaces in paths
Mads Kiilerich <mads@kiilerich.com>
parents:
10457
diff
changeset
|
56 svn co --quiet "$SVNREPO"/src s |
10178 | 57 hg add .hgsub |
58 hg ci -m1 | |
59 echo % debugsub | |
10775
c52057614c72
Tests with spaces in paths
Mads Kiilerich <mads@kiilerich.com>
parents:
10457
diff
changeset
|
60 hg debugsub | sed "$filterpath" |
10178 | 61 |
62 echo | |
63 echo % change file in svn and hg, commit | |
64 echo a >> a | |
65 echo alpha >> s/alpha | |
11142
0bf79efeaa20
test-subrepo-svn: fix strange svn behaviour on windows
Patrick Mezard <pmezard@gmail.com>
parents:
10954
diff
changeset
|
66 hg commit -m 'Message!' | sed "$filterexternal" \ |
0bf79efeaa20
test-subrepo-svn: fix strange svn behaviour on windows
Patrick Mezard <pmezard@gmail.com>
parents:
10954
diff
changeset
|
67 | sed 's:Sending.*s/alpha:Sending s/alpha:g' |
10775
c52057614c72
Tests with spaces in paths
Mads Kiilerich <mads@kiilerich.com>
parents:
10457
diff
changeset
|
68 hg debugsub | sed "$filterpath" |
10178 | 69 |
70 echo | |
71 echo a > s/a | |
72 echo % should be empty despite change to s/a | |
73 hg st | |
74 | |
75 echo | |
76 echo % add a commit from svn | |
10273
e898bc7810ad
subrepo: handle svn externals and meta changes (issue1982)
Patrick Mezard <pmezard@gmail.com>
parents:
10267
diff
changeset
|
77 cd "$WCROOT"/src |
10178 | 78 svn up |
79 echo xyz >> alpha | |
10273
e898bc7810ad
subrepo: handle svn externals and meta changes (issue1982)
Patrick Mezard <pmezard@gmail.com>
parents:
10267
diff
changeset
|
80 svn propset svn:mime-type 'text/xml' alpha |
10178 | 81 svn ci -m 'amend a from svn' |
10273
e898bc7810ad
subrepo: handle svn externals and meta changes (issue1982)
Patrick Mezard <pmezard@gmail.com>
parents:
10267
diff
changeset
|
82 cd ../../sub/t |
e898bc7810ad
subrepo: handle svn externals and meta changes (issue1982)
Patrick Mezard <pmezard@gmail.com>
parents:
10267
diff
changeset
|
83 |
10178 | 84 echo % this commit from hg will fail |
85 echo zzz >> s/alpha | |
10954
33119d0252c1
subrepo: fix repo root path handling in svn subrepo
Brett Cannon <brett@python.org>
parents:
10791
diff
changeset
|
86 hg ci -m 'amend alpha from hg' 2>&1 | sed "$filteroutofdate" |
10273
e898bc7810ad
subrepo: handle svn externals and meta changes (issue1982)
Patrick Mezard <pmezard@gmail.com>
parents:
10267
diff
changeset
|
87 svn revert -q s/alpha |
e898bc7810ad
subrepo: handle svn externals and meta changes (issue1982)
Patrick Mezard <pmezard@gmail.com>
parents:
10267
diff
changeset
|
88 |
e898bc7810ad
subrepo: handle svn externals and meta changes (issue1982)
Patrick Mezard <pmezard@gmail.com>
parents:
10267
diff
changeset
|
89 echo % this commit fails because of meta changes |
e898bc7810ad
subrepo: handle svn externals and meta changes (issue1982)
Patrick Mezard <pmezard@gmail.com>
parents:
10267
diff
changeset
|
90 svn propset svn:mime-type 'text/html' s/alpha |
10954
33119d0252c1
subrepo: fix repo root path handling in svn subrepo
Brett Cannon <brett@python.org>
parents:
10791
diff
changeset
|
91 hg ci -m 'amend alpha from hg' 2>&1 | sed "$filteroutofdate" |
10273
e898bc7810ad
subrepo: handle svn externals and meta changes (issue1982)
Patrick Mezard <pmezard@gmail.com>
parents:
10267
diff
changeset
|
92 svn revert -q s/alpha |
e898bc7810ad
subrepo: handle svn externals and meta changes (issue1982)
Patrick Mezard <pmezard@gmail.com>
parents:
10267
diff
changeset
|
93 |
e898bc7810ad
subrepo: handle svn externals and meta changes (issue1982)
Patrick Mezard <pmezard@gmail.com>
parents:
10267
diff
changeset
|
94 echo % this commit fails because of externals changes |
e898bc7810ad
subrepo: handle svn externals and meta changes (issue1982)
Patrick Mezard <pmezard@gmail.com>
parents:
10267
diff
changeset
|
95 echo zzz > s/externals/other |
e898bc7810ad
subrepo: handle svn externals and meta changes (issue1982)
Patrick Mezard <pmezard@gmail.com>
parents:
10267
diff
changeset
|
96 hg ci -m 'amend externals from hg' |
e898bc7810ad
subrepo: handle svn externals and meta changes (issue1982)
Patrick Mezard <pmezard@gmail.com>
parents:
10267
diff
changeset
|
97 svn revert -q s/externals/other |
e898bc7810ad
subrepo: handle svn externals and meta changes (issue1982)
Patrick Mezard <pmezard@gmail.com>
parents:
10267
diff
changeset
|
98 |
e898bc7810ad
subrepo: handle svn externals and meta changes (issue1982)
Patrick Mezard <pmezard@gmail.com>
parents:
10267
diff
changeset
|
99 echo % this commit fails because of externals meta changes |
e898bc7810ad
subrepo: handle svn externals and meta changes (issue1982)
Patrick Mezard <pmezard@gmail.com>
parents:
10267
diff
changeset
|
100 svn propset svn:mime-type 'text/html' s/externals/other |
e898bc7810ad
subrepo: handle svn externals and meta changes (issue1982)
Patrick Mezard <pmezard@gmail.com>
parents:
10267
diff
changeset
|
101 hg ci -m 'amend externals from hg' |
e898bc7810ad
subrepo: handle svn externals and meta changes (issue1982)
Patrick Mezard <pmezard@gmail.com>
parents:
10267
diff
changeset
|
102 svn revert -q s/externals/other |
10178 | 103 |
104 echo | |
105 echo % clone | |
106 cd .. | |
10198
c2168d170f05
test-subrepo-svn: normalize OS specific path separator
Patrick Mezard <pmezard@gmail.com>
parents:
10196
diff
changeset
|
107 hg clone t tc | fix_path |
10178 | 108 cd tc |
109 echo % debugsub in clone | |
10775
c52057614c72
Tests with spaces in paths
Mads Kiilerich <mads@kiilerich.com>
parents:
10457
diff
changeset
|
110 hg debugsub | sed "$filterpath" |
10954
33119d0252c1
subrepo: fix repo root path handling in svn subrepo
Brett Cannon <brett@python.org>
parents:
10791
diff
changeset
|
111 |
33119d0252c1
subrepo: fix repo root path handling in svn subrepo
Brett Cannon <brett@python.org>
parents:
10791
diff
changeset
|
112 echo % verify subrepo is contained within the repo directory |
33119d0252c1
subrepo: fix repo root path handling in svn subrepo
Brett Cannon <brett@python.org>
parents:
10791
diff
changeset
|
113 python -c "import os.path; print os.path.exists('s')" |