Как относиться к символической ссылке как к каталогу в Mercurial? - PullRequest
25 голосов
/ 25 декабря 2009

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

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

Ответы [ 4 ]

24 голосов
/ 10 июня 2010

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

mount --bind sourcepath targetpath

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

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

mount -o bind sourcepath targetpath

Запись в fstab:

sourcepath targetpath none defaults,bind 0 0
5 голосов
/ 03 апреля 2010

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

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

5 голосов
/ 26 декабря 2009

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

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

2 голосов
/ 25 июня 2011

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

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

/ paht / to / source / path / to / target bind по умолчанию, bind 0 0

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

...