Cloning Question

Matt Mackall mpm at selenic.com
Thu Jan 7 15:32:38 CST 2010


On Thu, 2010-01-07 at 14:09 -0700, Josh Malinski wrote:
> I ran the clone with --traceback option and the following is the output
> it gave me, is there somewhere I can look to see what the IOError that
> it is reporting?
> 
> destination directory: as
> updating to branch default
> Traceback (most recent call last):
>   File "mercurial\dispatch.pyc", line 46, in _runcatch
>   File "mercurial\dispatch.pyc", line 449, in _dispatch
>   File "mercurial\dispatch.pyc", line 319, in runcommand
>   File "mercurial\dispatch.pyc", line 500, in _runcommand
>   File "mercurial\dispatch.pyc", line 454, in checkargs
>   File "mercurial\dispatch.pyc", line 448, in <lambda>
>   File "mercurial\util.pyc", line 386, in check
>   File "mercurial\commands.pyc", line 649, in clone
>   File "mercurial\hg.pyc", line 325, in clone
>   File "mercurial\hg.pyc", line 339, in update
>   File "mercurial\merge.pyc", line 501, in update
>   File "mercurial\merge.pyc", line 315, in applyupdates
>   File "mercurial\localrepo.pyc", line 545, in wwrite
> IOError: [Errno 22] Invalid argument

Not sure we can translate that back into a Windows error, it's simply a
Posix-style EINVAL.

The line in question is:
            self.wopener(filename, 'w').write(data)

The error is happening in the write(data) portion, presumably due to the
length of data.

I presume a clone -U works?

What happens if you do:

python -c "open('foo', 'w').write('a' * 2**27)"

What version of Windows are you using? What filer are you using and how
is it attached? SMB? CIFS? Other?

Mercurial (and other apps implemented in high level languages) are not
shy about doing very large I/O operations, which might cause trouble for
some I/O appliances.

-- 
http://selenic.com : development and support for Mercurial and Linux




More information about the Mercurial mailing list