Mercurial > hg
annotate tests/test-revert-unknown.t @ 25777:1c2a8db33b8f
hgweb: allow symbolic revisions with forward slashes in urls
It's possible to have a branch/tag/bookmark with all kinds of special
characters, such as {}/\!?. While not very conveniently, symbolic revisions
with such characters work from command line if user correctly quotes the
characters. These characters also work in hgweb, when they are properly
encoded, with one exception: '/' (forward slash, urlencoded as '%2F'), which
was getting decoded before hgweb could parse it as a part of PATH_INFO.
Because of that, hgweb was seeing it as any other forward slash, that is, as
just another url parts separator.
For example, if user wanted to see the content of dir/file at bookmark
'feature/eggs', url could be: '/file/feature%2Feggs/dir/file'. But hgweb tried
to find a revision 'feature' and get contents of 'eggs/dir/file'.
To fix this, let's assume forward slashes are doubly-urlencoded (%252F), so
CGI/WSGI server decodes it into %2F. Then we can decode %2F in the revision
part of the url into an actual '/' character.
Making hgweb produce such urls will be done in the next 2 patches.
author | Anton Shestakov <av6@dwimlabs.net> |
---|---|
date | Sun, 12 Jul 2015 16:06:57 +0800 |
parents | 4c94b6d0fb1c |
children | 5c2a4f37eace |
rev | line source |
---|---|
12111
327dee7f7327
tests: unify test-revert-unknown
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
2982
diff
changeset
|
1 $ hg init |
327dee7f7327
tests: unify test-revert-unknown
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
2982
diff
changeset
|
2 $ touch unknown |
1236
67a28636ea64
Fix bug with co -C across branches, update tests
mpm@selenic.com
parents:
diff
changeset
|
3 |
12111
327dee7f7327
tests: unify test-revert-unknown
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
2982
diff
changeset
|
4 $ touch a |
327dee7f7327
tests: unify test-revert-unknown
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
2982
diff
changeset
|
5 $ hg add a |
12156
4c94b6d0fb1c
tests: remove unneeded -d flags
Martin Geisler <mg@lazybytes.net>
parents:
12111
diff
changeset
|
6 $ hg ci -m "1" |
1236
67a28636ea64
Fix bug with co -C across branches, update tests
mpm@selenic.com
parents:
diff
changeset
|
7 |
12111
327dee7f7327
tests: unify test-revert-unknown
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
2982
diff
changeset
|
8 $ touch b |
327dee7f7327
tests: unify test-revert-unknown
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
2982
diff
changeset
|
9 $ hg add b |
12156
4c94b6d0fb1c
tests: remove unneeded -d flags
Martin Geisler <mg@lazybytes.net>
parents:
12111
diff
changeset
|
10 $ hg ci -m "2" |
12111
327dee7f7327
tests: unify test-revert-unknown
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
2982
diff
changeset
|
11 |
327dee7f7327
tests: unify test-revert-unknown
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
2982
diff
changeset
|
12 Should show unknown |
1236
67a28636ea64
Fix bug with co -C across branches, update tests
mpm@selenic.com
parents:
diff
changeset
|
13 |
12111
327dee7f7327
tests: unify test-revert-unknown
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
2982
diff
changeset
|
14 $ hg status |
327dee7f7327
tests: unify test-revert-unknown
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
2982
diff
changeset
|
15 ? unknown |
327dee7f7327
tests: unify test-revert-unknown
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
2982
diff
changeset
|
16 $ hg revert -r 0 --all |
327dee7f7327
tests: unify test-revert-unknown
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
2982
diff
changeset
|
17 removing b |
327dee7f7327
tests: unify test-revert-unknown
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
2982
diff
changeset
|
18 |
327dee7f7327
tests: unify test-revert-unknown
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
2982
diff
changeset
|
19 Should show unknown and b removed |
1236
67a28636ea64
Fix bug with co -C across branches, update tests
mpm@selenic.com
parents:
diff
changeset
|
20 |
12111
327dee7f7327
tests: unify test-revert-unknown
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
2982
diff
changeset
|
21 $ hg status |
327dee7f7327
tests: unify test-revert-unknown
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
2982
diff
changeset
|
22 R b |
327dee7f7327
tests: unify test-revert-unknown
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
2982
diff
changeset
|
23 ? unknown |
327dee7f7327
tests: unify test-revert-unknown
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
2982
diff
changeset
|
24 |
327dee7f7327
tests: unify test-revert-unknown
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
2982
diff
changeset
|
25 Should show a and unknown |
327dee7f7327
tests: unify test-revert-unknown
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
2982
diff
changeset
|
26 |
327dee7f7327
tests: unify test-revert-unknown
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
2982
diff
changeset
|
27 $ ls |
327dee7f7327
tests: unify test-revert-unknown
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
2982
diff
changeset
|
28 a |
327dee7f7327
tests: unify test-revert-unknown
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
2982
diff
changeset
|
29 unknown |