[PATCH 7 of 9] largefiles: only reset status fields where needed
Martin von Zweigbergk
martinvonz at gmail.com
Mon Sep 22 13:43:32 CDT 2014
On Sat, Sep 20, 2014 at 9:32 AM, Mads Kiilerich <mads at kiilerich.com> wrote:
> On 09/17/2014 10:40 PM, Martin von Zweigbergk wrote:
>>
>> # HG changeset patch
>> # User Martin von Zweigbergk <martinvonz at gmail.com>
>> # Date 1410906484 25200
>> # Tue Sep 16 15:28:04 2014 -0700
>> # Node ID 013f8f20f2ae939ce4dd773e2c4120182450459b
>> # Parent 20ce7e4eb36f84fce4b36b3bc838e9d170f77b42
>> largefiles: only reset status fields where needed
>>
>> Part of lfilesrepo.status() looks as follows. If 'listunknown' (etc.)
>> is false, the result from orig() should naturally not contain any
>> unknown files. There is therefore no need to clear these fields unless
>> the <condition> path was taken, so move the clearing into that block.
>>
>> result = orig(node1, node2, m, listignored, listclean,
>> listunknown, listsubrepos)
>> if <condition>:
>> // modify 'result'
>> if not listunknown:
>> result[4] = []
>> // similar for ignored and clean files
>> return result;
>>
>> diff --git a/hgext/largefiles/reposetup.py b/hgext/largefiles/reposetup.py
>> --- a/hgext/largefiles/reposetup.py
>> +++ b/hgext/largefiles/reposetup.py
>> @@ -226,6 +226,12 @@
>> lfiles = (modified, added, removed, missing, [], [],
>> clean)
>> result = [sorted(list1 + list2)
>> for (list1, list2) in zip(normals,
>> lfiles)]
>> + if not listunknown:
>> + result[4] = []
>> + if not listignored:
>> + result[5] = []
>
>
> This is not wrong but it should also always be a noop. I think it would be
> better to assert that the lists are empty in these cases. Others might
> prefer to ride without safety belt and just let the invariant be implicit.
Right, it was a no-op before and after this patch. Also, what do you
mean by "assert"? "raise util.Abort"?
>
>> + if not listclean:
>> + result[6] = []
>
>
> Right, this one is currently needed as we have a minor deficiency so we
> build the 'clean' list even without listclean. We should fix that and treat
> this like the two above.
Maybe changing that and asserting in all three cases would be a patch on top?
> Besides the comment to this and to patch 1, the series LGTM.
Thanks for reviewing!
> /Mads
>
>
>> else:
>> def toname(f):
>> if lfutil.isstandin(f):
>> @@ -241,12 +247,6 @@
>> if wlock:
>> wlock.release()
>> - if not listunknown:
>> - result[4] = []
>> - if not listignored:
>> - result[5] = []
>> - if not listclean:
>> - result[6] = []
>> self.lfstatus = True
>> return result
>> _______________________________________________
>> Mercurial-devel mailing list
>> Mercurial-devel at selenic.com
>> http://selenic.com/mailman/listinfo/mercurial-devel
>
>
More information about the Mercurial-devel
mailing list