Как относиться к символической ссылке как к каталогу в Mercurial?


Начиная с 0.9.4, при добавлении символьной ссылки Mercurial отслеживает саму ссылку, а не файл или каталоги, на которые она указывает. Однако бывают случаи, когда желательно отслеживать файлы, на которые указывает символьная ссылка.

Как заставить Mercurial рассматривать символическую ссылку на каталог как обычный каталог?

4 25

4 ответа:

Под linux вы можете использовать

mount --bind sourcepath targetpath

Вместо символьных ссылок и mercurial будет рассматривать target как обычный каталог (тестируется на openSUSE 11.2 с Mercurial 1.3.1 и на RHEL6).

Альтернативный синтаксис, поддающийся включению в /etc/fstab, является
mount -o bind sourcepath targetpath

Запись fstab, то

sourcepath targetpath none defaults,bind 0 0

Я не думаю, что есть способ сделать это, когда вы работаете с каталогами.

Если вы работаете с mercurial 1.3 или более поздней версией,вы можете попробовать использовать новую поддержку subrepo, которая позволит вам отслеживать РЕПО на локальном диске, но это не так гладко, как ссылка.

Я тоже был удивлен, когда обнаружил это, но, похоже, это особенность, которую команда Mercurial не хочет менять по соображениям безопасности.

Я планирую обойти это, используя rsync для обновления локальной копии каталога перед фиксацией, из моего файла makefile. Это не очень хорошее решение, но мой каталог довольно мал, поэтому он должен быть в порядке.

Просто продолжение превосходного ответа Rage Steel (mount-bind):

Чтобы сделать ваше крепление готовым при загрузке (так как монтирование не переживает перезагрузки), в вашем /etc/fstabs поместите:

/указывает/для/источник /путь/к/целевой привязки по умолчанию,привязка 0 0

Просто не забудьте поставить его после того, как ваш источник будет смонтирован.