2012-01-03 15 views
11

W raczej dużym projekcie chciałbym umieścić ten sam plik (lub folder) w różnych lokalizacjach. Gdy zostanie zmieniony w jednym miejscu, zmiany powinny być propagowane. W Subversion mogłem użyć zewnętrznych do osiągnięcia tego zachowania.Śledzenie twardych lub symbolicznych łączy z rtęcią w systemie Windows

Próbowałem rozwiązać ten problem, używając twardych linków i dowiązań symbolicznych, ale Mercurial wydaje się nie śledzić żadnego z nich. Zamiast tego zatwierdza zawartość plików do repozytorium zamiast właściwości łącza. Kiedy sklonuję repozytorium, informacje zostaną utracone.

Czy jest to specyficzne dla systemu Windows zachowanie Mercurial, czy nie może w ogóle śledzić linków? Czy istnieje inny sposób śledzenia pliku, który jest dostępny z różnych lokalizacji w Mercurial?

Odpowiedz

15

Mercurial może śledzić dowiązania symboliczne, ale wyglądają dziwnie, gdy są wyewidencjonowane w systemie Windows. Co się dzieje, Mercurial tworzy plik z celem link link jako plik zawartość. Niestety nie ma wsparcia dla tworzenia prawdziwych dowiązań symbolicznych w obsługiwanych systemach Windows, takich jak Windows Vista. Wynika z tego, że nie można używać dowiązań symbolicznych w repozytorium, które powinno być przenośne między oboma systemami. Proszę see the discussion in Issue1825, aby uzyskać więcej informacji na temat tej funkcji.

Najbliższym odpowiednikiem dla svn:externals jest Mercurial subrepositories. W zależności od tego, jak użyłeś svn:externals, subrepos może być lub nie być tym, co chcesz. Proszę see my answer na inne pytanie dotyczące subrepos po radę. Napisałem część kodu dla subrepos i z góry głowy, myślę, że montowanie subrepołu kilka razy w tym samym głównym repozytorium brzmi jak przepis na zamieszanie. Być może jednak możesz sprawić, żeby działało - po prostu bądź świadomy, że subrepos są podstępną częścią Mercurial.

+2

Ale NTFS obsługuje dowiązania symboliczne od czasu systemu Windows Vista. – fschoenm

+0

No właśnie, zapomniałem, że Windows ostatnio dodał wsparcie dla dowiązania symbolicznego. Niestety nie mamy wsparcia w ich tworzeniu. [Issue1825] (http://mercurial.selenic.com/bts/issue1825) jest z tym związany. –

+0

Niedawno? Vista została wydana 5 lat temu;) – fschoenm

Powiązane problemy