Mercurial > hg
annotate tests/test-hg-parseurl.py @ 18625:2cbd27f4f3c4
dirstate: walk returns None for files that have a symlink in their path
Previously dirstate.walk would return a stat object for files in the dmap
that have a symlink to a directory in their path. Now it will return None
to indicate that they are no longer considered part of the repository. This
currently only affects walks that traverse the entire directory tree (ex:
hg status) and not walks that only list the contents of the dmap (ex: hg diff).
In a situation like this:
mkdir foo && touch foo/a && hg commit -Am "a"
mv foo bar
ln -s bar foo
'hg status' will now show '! foo/a', whereas before it incorrectly considered
'foo/a' to be unchanged.
In addition to making 'hg status' report the correct information, this will
allow callers to dirstate.walk to not have to detect symlinks themselves,
which can be very expensive.
author | Durham Goode <durham@fb.com> |
---|---|
date | Mon, 04 Feb 2013 14:27:15 -0800 |
parents | 375872fdadba |
children | 8a23f88131c3 |
rev | line source |
---|---|
8174
29bc5d18714a
hg: allow hg.parseurl(url, None)
Martijn Pieters <mj@zopatista.com>
parents:
diff
changeset
|
1 from mercurial.hg import parseurl |
29bc5d18714a
hg: allow hg.parseurl(url, None)
Martijn Pieters <mj@zopatista.com>
parents:
diff
changeset
|
2 |
10365
d757bc0c7865
interpret repo#name url syntax as branch instead of revision
Sune Foldager <cryo@cyanite.org>
parents:
8174
diff
changeset
|
3 def testparse(url, branch=[]): |
d757bc0c7865
interpret repo#name url syntax as branch instead of revision
Sune Foldager <cryo@cyanite.org>
parents:
8174
diff
changeset
|
4 print '%s, branches: %r' % parseurl(url, branch) |
8174
29bc5d18714a
hg: allow hg.parseurl(url, None)
Martijn Pieters <mj@zopatista.com>
parents:
diff
changeset
|
5 |
29bc5d18714a
hg: allow hg.parseurl(url, None)
Martijn Pieters <mj@zopatista.com>
parents:
diff
changeset
|
6 testparse('http://example.com/no/anchor') |
29bc5d18714a
hg: allow hg.parseurl(url, None)
Martijn Pieters <mj@zopatista.com>
parents:
diff
changeset
|
7 testparse('http://example.com/an/anchor#foo') |
10365
d757bc0c7865
interpret repo#name url syntax as branch instead of revision
Sune Foldager <cryo@cyanite.org>
parents:
8174
diff
changeset
|
8 testparse('http://example.com/no/anchor/branches', branch=['foo']) |
d757bc0c7865
interpret repo#name url syntax as branch instead of revision
Sune Foldager <cryo@cyanite.org>
parents:
8174
diff
changeset
|
9 testparse('http://example.com/an/anchor/branches#bar', branch=['foo']) |
d757bc0c7865
interpret repo#name url syntax as branch instead of revision
Sune Foldager <cryo@cyanite.org>
parents:
8174
diff
changeset
|
10 testparse('http://example.com/an/anchor/branches-None#foo', branch=None) |
13897
375872fdadba
hg: make parseurl() consistently return normalised path
Thomas Arendsen Hein <thomas@intevation.de>
parents:
12865
diff
changeset
|
11 testparse('http://example.com/') |
375872fdadba
hg: make parseurl() consistently return normalised path
Thomas Arendsen Hein <thomas@intevation.de>
parents:
12865
diff
changeset
|
12 testparse('http://example.com') |
375872fdadba
hg: make parseurl() consistently return normalised path
Thomas Arendsen Hein <thomas@intevation.de>
parents:
12865
diff
changeset
|
13 testparse('http://example.com#foo') |