Czy w mercurial istnieje opcja ignorowania przy zatwierdzaniu?
Czy Jest jakiś sposób, aby zignorować zmiany w niektórych plikach w commicie za pomocą mercurial?
Mam konkretną sytuację, w której mamy domyślną Oracle tnsnames.plik ora, który wskazuje na 127.0.0.1, ale niektórzy programiści zmodyfikują go tak, aby wskazywał na inne systemy, ale nie chcemy zmieniać pliku domyślnego.
W subversion, po prostu dodałem to do listy zmian ignore-on-commit. Czy można to zrobić w mercurial?
4 answers
Jeśli pliki, które chcesz pominąć w poleceniu " Hg commit "są już" śledzone", powinieneś użyć opcji-X. Wzór przekazywany do-X jest dość elastyczny, dzięki czemu można uruchomić na przykład:
% hg stat
A etc/foo.conf
M src/bar.c
M lib/libbar/loader.c
% hg commit -X '**.conf'
Aby uniknąć popełnienia jakiegokolwiek pliku z".conf " rozszerzenie, niezależnie od tego, jak głęboko w drzewie źródłowym żyje. W obszarze roboczym pokazanym powyżej będzie to commit " src / bar.c " i " lib/libbar/loader.c "ale nie" etc / foo.conf".
Aby wykluczyć wiele wzorców nazw plików, użyj wiele opcji-X, np.:
% hg commit -X '**.conf' -X '**.sh'
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-05-22 01:16:36
Tradycyjnie rozwiązuje się to nie poprzez wersjonowanie samego pliku, ale poprzez wersjonowanie jego kopii jako szablonu dla innych.
Więc możesz hg mv tnsnames.ora tnsnames.ora-template
, następnie zatwierdzić, a następnie wykonać prostą kopię systemu plików tnsnames.ora-szablon do tnsnames.ora, i dodać tnsnames.ora do ... plik hgignore.
Kolejne zmiany w szablonie nadal zostaną wypchnięte, ale nie zmienią środowiska pracy, chyba że ktoś skopiuje szablon do rzeczywistego pliku.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-05-21 03:18:03
Możesz dodać Alias commit do czegoś takiego jak ' Hg commit-X excluded_file.ext ' nigdy nie używałem mercurial, więc po prostu przejdę przez stronę man tutaj.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-05-19 19:29:25
Szukaj .plik hgignore w dokumentacji Mercuriala.
Oto przykładowy plik ignoruj.
# use glob syntax.
syntax: glob
*.elc
*.pyc
*~
# switch to regexp syntax.
syntax: regexp
^\.pc/
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-05-19 19:31:31