[PATCH] largefiles: ignore hidden changesets with 'verify --large --lfa'

Pierre-Yves David pierre-yves.david at ens-lyon.org
Tue Jun 9 13:04:48 CDT 2015



On 06/08/2015 07:55 PM, Matt Harbison wrote:
> On Mon, 08 Jun 2015 22:16:20 -0400, Pierre-Yves David
> <pierre-yves.david at ens-lyon.org> wrote:
>
>>
>>
>> On 06/08/2015 05:52 PM, Matt Harbison wrote:
>>> # HG changeset patch
>>> # User Matt Harbison <matt_harbison at yahoo.com>
>>> # Date 1433643018 14400
>>> #      Sat Jun 06 22:10:18 2015 -0400
>>> # Node ID 7beb2d6c7bf755f83293e9780b82a2632fc2918a
>>> # Parent  378a8e700e02794e991d3521423a4f581b635666
>>> largefiles: ignore hidden changesets with 'verify --large --lfa'
>>>
>>> Previously, if there were any hidden changesets, the --lfa argument
>>> would cause
>>> the command to abort with a hint about using --hidden when it tripped
>>> over a
>>> hidden changeset.
>>
>> do you want operation on an unfiltered repository instead?
>
> I thought about it, but I guess there's the potential for a largefile to
> be amended, and the original cset hidden.  So why bother verifying the
> hidden file if --hidden isn't specified?  It seems that this way, both
> visible and visible + --hidden are possible, depending on what the user
> wants.

hg verify runs on an unfiltered repo, it would be consistent to run this 
one on unfiltered repository too. Why would we want something different?

What does --lfa and --large argument do exactly?

>
>>> diff --git a/hgext/largefiles/lfcommands.py
>>> b/hgext/largefiles/lfcommands.py
>>> --- a/hgext/largefiles/lfcommands.py
>>> +++ b/hgext/largefiles/lfcommands.py
>>> @@ -364,9 +364,7 @@
>>>       matches the revision ID).  With --all, check every changeset in
>>>       this repository.'''
>>>       if all:
>>> -        # Pass a list to the function rather than an iterator
>>> because we know a
>>> -        # list will work.
>>> -        revs = range(len(repo))
>>> +        revs = repo.revs('all()')
>>
>> (in all cases)
>> revs = iter(repo.changelog) ? (not convince it is so much better)
>
> The method 'revs' is passed to does 'len(revs)', which revset handles.
> But this seems to work:
>
>     revs = list(repo.changelog)

We could also use repo.changelog. The use of len will makes it a bit 
hard to be efficient, but 'all()' is probably you best bet here.

This does not need to changes.

-- 
Pierre-Yves David


More information about the Mercurial-devel mailing list