util: fix url.__str__() for windows file URLs
Before:
>>> str(url('file:///c:/tmp/foo/bar'))
'file:c%3C/tmp/foo/bar'
After:
>>> str(url('file:///c:/tmp/foo/bar'))
'file:///c%3C/tmp/foo/bar'
The previous behaviour had no effect on mercurial itself (clone command for
instance) because we fortunately called .localpath() on the parsed URL.
hgsubversion was not so lucky and cloning a local subversion repository on
Windows no longer worked on the default branch (it works on stable because
de7e2fba4326 defeats the hasdriveletter() test in url class).
I do not know if the %3C is correct or not but svn accepts file:// URLs
containing it. Mads fixed it in
de7e2fba4326, so we can always backport should
the need arise.
http://mercurial.selenic.com/bts/issue842
$ hg init
$ echo foo > a
$ hg ci -Ama
adding a
$ hg up -r0000
0 files updated, 0 files merged, 1 files removed, 0 files unresolved
$ echo bar > a
Should issue new head warning:
$ hg ci -Amb
adding a
created new head
$ hg up -r0000
0 files updated, 0 files merged, 1 files removed, 0 files unresolved
$ echo stuffy > a
Should not issue new head warning:
$ hg ci -q -Amc
$ hg up -r0000
0 files updated, 0 files merged, 1 files removed, 0 files unresolved
$ echo crap > a
$ hg branch testing
marked working directory as branch testing
Should not issue warning:
$ hg ci -q -Amd