[Bug 3780] New: largefiles: hg verify --large on a repository that contains large files no longer works.

mercurial-bugs at selenic.com mercurial-bugs at selenic.com
Wed Jan 23 02:25:46 CST 2013


http://bz.selenic.com/show_bug.cgi?id=3780

          Priority: normal
            Bug ID: 3780
                CC: mercurial-devel at selenic.com, natosha at gmail.com
          Assignee: bugzilla at selenic.com
           Summary: largefiles: hg verify --large on a repository that
                    contains large files no longer works.
          Severity: bug
    Classification: Unclassified
                OS: Windows
          Reporter: guido.jansen at lmsintl.com
          Hardware: PC
            Status: UNCONFIRMED
           Version: 2.4.2
         Component: largefiles
           Product: Mercurial

hg verify --large on a repository that contains large files no longer works. 

This is because:
- The method wirestore.py:_stat expects a set of hashes, 
- While remotestore:_verifyfile (line 90) sends one single hash

Proposed solution: 
replace 
        stat = self._stat(hash)
with
        stat = self._stat([hash])[hash]

See version info and stacktrace below

==============
hg --version
Mercurial Distributed SCM (version 2.4.2)
(see http://mercurial.selenic.com for more information)

Copyright (C) 2005-2012 Matt Mackall and others
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

==============
hg verify --large
checking changesets
checking manifests
crosschecking files in changesets and manifests
checking files
1700 files, 200 changesets, 2257 total revisions
searching 1 changesets for largefiles
** Unknown exception encountered with possibly-broken third-party extension
LMSMarkVLVersions
** which supports versions unknown of Mercurial.
** Please disable LMSMarkVLVersions and try your action again.
** If that fixes the bug please report it to the extension author.
** Python 2.7.3 (default, Apr 10 2012, 23:24:47) [MSC v.1500 64 bit (AMD64)]
** Mercurial Distributed SCM (version 2.4.2)
** Extensions loaded: eol, rebase, mq, largefiles, transplant
Traceback (most recent call last):
  File "hg", line 42, in <module>
  File "mercurial\dispatch.pyo", line 28, in run
  File "mercurial\dispatch.pyo", line 65, in dispatch
  File "mercurial\dispatch.pyo", line 88, in _runcatch
  File "mercurial\dispatch.pyo", line 741, in _dispatch
  File "mercurial\dispatch.pyo", line 514, in runcommand
  File "mercurial\dispatch.pyo", line 831, in _runcommand
  File "mercurial\dispatch.pyo", line 802, in checkargs
  File "mercurial\dispatch.pyo", line 738, in <lambda>
  File "mercurial\util.pyo", line 472, in check
  File "mercurial\extensions.pyo", line 144, in wrap
  File "mercurial\util.pyo", line 472, in check
  File "hgext\mq.pyo", line 3546, in mqcommand
  File "mercurial\util.pyo", line 472, in check
  File "mercurial\extensions.pyo", line 144, in wrap
  File "mercurial\util.pyo", line 472, in check
  File "hgext\largefiles\overrides.pyo", line 254, in overrideverify
  File "hgext\largefiles\lfcommands.pyo", line 384, in verifylfiles
  File "hgext\largefiles\basestore.pyo", line 115, in verify
  File "hgext\largefiles\basestore.pyo", line 115, in <genexpr>
  File "hgext\largefiles\remotestore.pyo", line 90, in _verifyfile
  File "hgext\largefiles\wirestore.pyo", line 31, in _stat
TypeError: 'builtin_function_or_method' object is not iterable

-- 
You are receiving this mail because:
You are on the CC list for the bug.


More information about the Mercurial-devel mailing list