Как относиться к символической ссылке как к каталогу в Mercurial?
Начиная с 0.9.4, при добавлении символьной ссылки Mercurial отслеживает саму ссылку, а не файл или каталоги, на которые она указывает. Однако бывают случаи, когда желательно отслеживать файлы, на которые указывает символьная ссылка.
Как заставить Mercurial рассматривать символическую ссылку на каталог как обычный каталог?
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
Просто не забудьте поставить его после того, как ваш источник будет смонтирован.