[PATCH 4 of 4] dirstate: walk returns None for files under symlink directory

Durham Goode durham at fb.com
Tue Feb 5 17:42:06 CST 2013


I sent out a broken up version of this.  I don't feel comfortable putting
it in stable. dirstate.walk is used in a lot of places and it's possible I
broke something subtle somewhere (though all the tests pass).  Plus the
actual thing it's fixing shouldn't be too common.

On 2/5/13 8:24 AM, "Kevin Bullock" <kbullock+mercurial at ringworld.org>
wrote:

>
>On Feb 4, 2013, at 9:20 PM, Durham Goode wrote:
>
>> # HG changeset patch
>> # User Durham Goode <durham at fb.com>
>> # Date 1360016835 28800
>> # Node ID 6d9b67fed529efcff1f210abd694c551d85cdea5
>> # Parent  1c47ffd98e0ee0ddccfe339e2a28cf1841be52a4
>> dirstate: walk returns None for files under symlink directory
>
>-ETOOBIG
>
>This patch is doing too much, and you've got a function duplicated
>exactly in two modules.
>
>> Previously dirstate.walk would return a stat object for files in the
>>dmap
>> that were under a symlink directory.  Now it will return None (when the
>>unknown
>> parameter is True) to indicate that they are no longer considered part
>>of the
>> repository.
>> 
>> 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.
>
>Shouldn't we land a minimal fix for this on stable?
>
>pacem in terris / мир / शान्ति / ‎‫سَلاَم‬ / 平和
>Kevin R. Bullock
>



More information about the Mercurial-devel mailing list