Próbuję zatwierdzić tylko niektóre pliki w Mercurial. Ze względu na to, że hg ma automatyczne dodawanie za każdym razem, gdy próbuję wprowadzić zmianę, chce zatwierdzić wszystkie pliki. Ale nie chcę tego, ponieważ niektóre pliki nie są jeszcze „gotowe”.
Jest
hg commit -I thefile.foo
ale to jest tylko dla jednego pliku. Lepszym sposobem dla mnie byłoby wyłączenie automatycznego dodawania, tak jak w Git. czy to możliwe?
version-control
mercurial
commit
Praveen Kumar Purushothaman
źródło
źródło
hg ci foo bar baz
Odpowiedzi:
Możesz określić pliki w wierszu poleceń, tak jak pisze tonfa:
To po prostu działa i robię to cały czas. Możesz także użyć
--include
znalezionej flagi i możesz jej użyć kilka razy w następujący sposób:Możesz nawet użyć zestawu plików, aby wybrać pliki, które chcesz zatwierdzić:
Nie ma ustawienia, które wyłączyłoby automatyczne dodawanie i sprawiłoby, że Mercurial działał jak Git. Jednak rozszerzenie mq może być interesujące. To zaawansowane rozszerzenie, ale pozwala
Jednak tak naprawdę nie używam MQ do tego celu, ponieważ myślę, że wystarczy podać nazwy plików w wierszu poleceń.
źródło
Jeśli chcesz zatwierdzić kilka plików i wykluczyć wiele innych, jawnie wymień pliki, które chcesz zatwierdzić.
-I
jest potrzebny tylko wtedy, gdy chcesz używać wzorców zamiast plików.Jeśli chcesz zatwierdzić wiele plików i wykluczyć tylko kilka plików, użycie
-X
jest wygodniejsze.Np. Biorąc pod uwagę repozytorium zawierające „plik_1”, „plik_2” i „plik_3”, poniższe są równoważne, ale to drugie jest łatwiejsze / szybsze do wpisania:
źródło
Od 3.8 możesz także użyć
hg commit --interactive
do wybierania plików (przed 3.8 możesz używać rozszerzenia crecord dla podobnej funkcjonalności). Flaga--interactive
(lub po prostu-i
) spowoduje, że hg zapyta cię o pliki, które chcesz dołączyć do zatwierdzenia. Jako dodatkowy bonus możesz nawet dołączyć / wykluczyć fragmenty plików.Oto przykład tego, jak wygląda interfejs. Zauważ, że jest to stary zrzut ekranu (właściwie crecord), więc interfejs nieznacznie się zmienił (ale podstawy są takie same).
Uwaga, aby uzyskać ten interfejs, musisz mieć włączony interfejs curses. Możesz to zrobić dla pojedynczego przebiegu z
hg commit --config ui.interface=curses --interactive
lub ogólnie, dodając następujące elementy do.hgrc
:źródło