LINUX.ORG.RU

[mercurial][sshfs]ошибка при выполнении hg clone

 ,


0

0

При выполнении hg clone в директории подмонтированной через sshfs hg ругается:

hg clone https://bitbucket.org/McKael/mcabber/
warning: bitbucket.org certificate with fingerprint 81:2b:08:90:dc:d3:71:ee:e0:7c:b4:75:ce:9b:6c:48:94:56:a1:fe not verified (check hostfingerprints or web.cacerts config setting)
destination directory: mcabber
abort: could not lock repository mcabber: Operation not permitted
ls mcabber/.hg/store/ -l
ls: cannot access mcabber/.hg/store/lock: No such file or directory
total 0
?????????? ? ? ? ?            ? lock
строчка из fstab
user@192.168.1.1:/media/media /media/media fuse.sshfs users,noauto,allow_other,port=2222,follow_symlinks,uid=1000,gid=1005,umask=022 0 0
Кто виноват? Что делать?

★★★★★
Ответ на: комментарий от Deleted

И если hg использует настоящие файловые блокировки, а не просто проверяет наличие файла, то поверх sshfs оно без страшных хаков (в виде фейковых блокировок на стороне клиента) точно работать не будет.

Deleted
()
Ответ на: комментарий от xorik

git тоже использует блокировки, но прекрасно работает поверх sshfs

Значит костыли в sshfs уже присутствуют =).

В любом случае, вот такого:

ls mcabber/.hg/store/ -l
ls: cannot access mcabber/.hg/store/lock: No such file or directory
total 0
?????????? ? ? ? ?            ? lock
быть не должно.

Deleted
()
Ответ на: комментарий от Deleted

Хотя возможно я и ошибаюсь, может и нет там блокировок, просто файл lock создается

xorik ★★★★★
()
Ответ на: комментарий от Deleted

Вот что удалось нагуглить

Actually, when Mercurial is doing some operations, it needs to lock the repository. For doing this it creates a symbolic link to an nonexistent file, when the filesystem supports it, in the .hg repository, telling every other processes that the repository can't be modified at this time. When symbolic links aren't supported by the filesystem, a normal file is created.

However, there's some problems with some FUSE filesystems, typically SSHFS with the follow_symlinks option activated. FUSE reports that he knows about symbolic links, but since SSHFS follows the symbolic link and the file doesn't exist, the «state» of the link is marked as unknown thus Mercurial thinks the repository isn't correctly locked and abort the operation.

Убрал опцию follow_symlinks и всё заработало. Всем спасибо за ответы.

daemonpnz ★★★★★
() автор топика
16 октября 2011 г.
Ответ на: комментарий от daemonpnz

Поднимаю тред, возникла похожая проблема. hg clone работает, но hg pull выдаёт следующее:

searching for changes
adding changesets
abort: Operation not permitted
follow_symlinks не включал.

Mihai-gr
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.