Mercurial: hg-checklinks - рекурсивная символическая ссылка через сетевой диск NFS / SAMBA / SSHFS - PullRequest
0 голосов
/ 07 марта 2011

Когда я выполняю macfusion в свою виртуальную машину с Ubuntu и hg клонирую что-то из bitbucket - а затем пытаюсь выполнить коммит / export / etc, я получаю добавленную папку с префиксом имени «hg-checklinks -».1001 *

При проверке он, кажется, содержит бесконечную цепочку символических ссылок в своей родительской папке.Это сводит меня с ума, и до сих пор я потерял веру в Mercurial.

Имейте в виду, кажется, работает нормально, когда я просто использую его в локальной папке.Кто-нибудь знает, как я могу обойти это .. или даже больше информации о том, почему это происходит?

Ура!

Ответы [ 3 ]

4 голосов
/ 07 марта 2011

Децентрализованная часть DVCS *1001* предназначена для ее локального запуска - единственными операциями Mercurial, которые должны выполняться на чем-либо, кроме локальной системы, являются push, pull и clone. Если вы клонируете из bitbucket на свою виртуальную машину Ubuntu, то вам следует клонировать свою виртуальную машину Ubuntu на свой Mac и отправить на виртуальную машину Ubuntu.

Тем не менее, похоже, что ваша сетевая ФС неправильно удаляет файл, когда ему говорят. Вот соответствующий код (находится здесь: https://www.mercurial -scm.org / repo / hg / file / a2dc8819bb0d / mercurial / util.py # l710 ):

name = tempfile.mktemp(dir=path, prefix='hg-checklink-')
try:
    os.symlink(".", name)
    os.unlink(name)
    return True
except (OSError, AttributeError):
    return False

Таким образом, либо ваша сетевая FS создает символическую ссылку, но в любом случае выдает исключение, либо выдает исключение при запросе удаления (отмены связи) символической ссылки.

1 голос
/ 22 ноября 2011

Я исправил это, используя решение по этой ссылке на Mac OS X Lion

http://blog.philippklaus.de/2011/07/sshfs-on-mac-os-x-10-6-8-with-fuse4x/

0 голосов
/ 30 июля 2013

Проблема здесь в особом sshfs "-o follow_symlinks", который с радостью создаст символические ссылки, затем заявит, что не может их создать, а затем покажет их как удивительные рекурсивные неустранимые каталоги.Эта неработающая опция может автоматически включаться из-за ошибки в Macfusion (https://code.google.com/p/macfusion/issues/detail?id=284).). Поэтому, если что-то, вы должны «потерять веру» в sshfs и Macfusion, а не в Mercurial.

Это будет исправлено вMercurial 2.7 В то же время вы должны иметь возможность запускать sshfs вручную без опции.

(Для более быстрого исправления ошибок, пожалуйста, сообщайте об ошибках в проекты Mercurial / sshfs / macfusion, а не в случайные форумы по интернет-вопросам.)

...