2011-09-17 7 views
7

Czytałem o tagach mercurial. Zwykle widzimy, że zmieniliśmy zestaw znaków, aby oznaczyć punkt zwolnienia, a te tagi też są kontrolowane pod kątem rewizji.Dlaczego osobny plik znaczników w Mercurial

Ale nie mogłem naprawdę zrozumieć idei posiadania pliku .hgtags. Jaki jest cel tego pliku?

Odpowiedz

5

Posiadanie pliku .hgtags umożliwia zapisywanie zmian w pliku .hgtags w tym samym formacie, w którym zapisywane są zmiany we wszystkich innych plikach. Umożliwia także przesyłanie znaczników między repozytoriami w tym samym formacie, w którym przesyłane są zmiany plików.

Pozwala to firmie Mercurial na wdrożenie jednego systemu do przechowywania zmian w katalogu i jednego protokołu do przeniesienia pakietu zmian do katalogu oraz automatyczne przetwarzanie informacji o rozgałęzieniach i znacznikach podczas przesyłania plików.

Pozwala także przeglądać historię znaczników projektu, przeglądając historię pliku .hgtags.

+2

Wadami są zamieszanie wokół 'hg clone -r ' oraz niepotrzebny wymóg rozwiązania konfliktu w pliku '.hgtags', gdy dwa oddzielne znaczniki są dodawane w dwóch oddzielnych gałęziach, które później są scalane. – Jesse

+0

+1, te same zasady odnoszą się również do '.hgignore'. –

+0

Chociaż rozumiem te argumenty, wydaje mi się, że jest to podobne do "ponieważ jest to celowe włamanie". Jest to również potwierdzenie, że znaczniki nie są naprawdę pierwszorzędną częścią Hg. –

0

Nazwy znaczników w dwóch powiązanych repozytoriach mogą być w konflikcie.

E.G. Znacznik A może w jednym punkcie repo na zestawie zmian id X iw innym reporze ten sam znacznik może wskazywać na identyfikator zestawu zmian Y. Podczas scalania ten konflikt musi zostać rozwiązany.

Konflikty podczas scalania są rozwiązywane poprzez inspekcję plików i związanych z nimi modyfikacji.

W związku z tym znaczniki muszą być przechowywane w zwykłym pliku w repozytorium.

0

Właściwie nie widzę żadnego użycia dla posiadania oddzielnego pliku znaczników. Historia repozytorium (w tym znaczniki) powinna być dobrze widoczna za pomocą komendy "log". Posiadanie pliku znaczników łamie również ważną regułę: zmiana ściśle związana z systemem wersjonowania nie powinna w żaden sposób zmieniać repozytorium.

Powiązane problemy