problem on OSX with repository in network shared partition

sbarex sbarex sbarex at gmail.com
Mon Nov 29 16:24:04 UTC 2010


Thanks for the fast responce!
I replay inside the mail:

2010/11/29 Mads Kiilerich <mads at kiilerich.com>

On 11/29/2010 04:10 PM, sbarex sbarex wrote:
>
>> Hi, I'm starting to experience a few days mercurial but I have a big
>> problem:
>> I'm on a mac with OSX 10.6 with a remote disk mounted from a XServe (OSX
>> 10.4) with afs protocol.
>>
>
> Apparently not directly relevant, but note the warning on the hg man page
> and in "hg help clone":
>
>
I think tha the problem is the afs protocol... on local filesystem, or on
external usb driver there are no problems. Also if I mount the network drive
with samba protocol all works ok... The only problem is if I use afs, that
is the standard in osx...


> For efficiency, hardlinks are used for cloning whenever the source and
> destination are on the same filesystem (note this applies only to the
> repository data, not to the working directory). Some filesystems, such as
> AFS, implement hardlinking incorrectly, but do not report errors. In these
> cases, use the --pull option to avoid hardlinking.
>
> (Someone with interest in AFS could perhaps implement some automatic
> detection of this case, similar to what is used on Windows network shares
> now.)
>
>
>
I don't think that the problem is in hardlink because if I clone from a usb
drive to my local hd (so to a different filesystem and in this case is
impossible to make hardlink) all works good.


>  If I clone a repository form a local path (of directory inside a
>> usb/firewire HD) to a path in the network drive I get a defective copy:
>>
>
> Is the copy really defect or is it "just" that you can't use it with
> Mercurial over AFS? Does it work if you copy it back to your local disk?
>
>
I can't correctly use mercurial with the cloned copy of the repository and,
if I make a change in this copy I have problems to commit and propagate the
change to other repository.
I tried to manually copy the local repository to network drive. I make some
change but after the first commit recompare the fake symlinks and the
message error for lock file when I try to remove a file with hg remove...


>  - on the root of the repository I found a symlink named like
>> hg-checklink-Z0jTkj cross linked with current directory:
>>
>
> That indicates that this shell command sequence also fails on AFS:
>
> ln -s . hg-checklink-xxx && unlink hg-checklink-xxx
>
> or
>
> python -c 'import os; os.symlink(".", "x"); os.unlink("x")'
>
> Can you test that?
>
>
the code
$ ln -s . hg-checklink-xxx && unlink hg-checklink-xxx
generate a error:
unlink: hg-checklink-xxx: Directory not empty

I can delete the symlink only in the Finder.

With
$ python -c 'import os; os.symlink(".", "x"); os.unlink("x")'
works all without problems


>
>  - if I try to remove a file, hg say me:
>> $ hg remove file.txt
>> waiting for lock on working directory of
>> /Volumes/XRAID/Developer/repository held by
>> 'Mac-Pro-di-sbarex.local:45849'
>> and in .hg folder many wlock files are created...
>>
>
> Mercurial uses symlinks for locking - if symlinks works. But it seems like
> symlinks and symlink detection doesn't work.
>
> /Mads
>

Thanks,
Simone
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mercurial-scm.org/pipermail/mercurial/attachments/20101129/3a036b48/attachment.html>


More information about the Mercurial mailing list