Есть ли опция ignore-on-commit в mercurial?
Есть ли способ игнорировать изменения в некоторых файлах с фиксацией с помощью mercurial?
У меня есть конкретная ситуация, когда у нас есть файл oracle tnsnames.ora по умолчанию, который указывает на 127.0.0.1, но некоторые разработчики изменят его, чтобы указать на другие системы, но мы не хотим изменять файл по умолчанию.
В подрывной работе я просто добавил это в список изменений в-игнорировать. Есть ли способ сделать это в mercurial?
Ответы
Ответ 1
Если файлы, которые вы хотите опустить из команды "hg commit", уже "отслеживаются", вы должны использовать опцию -X. Образец, переданный в -X, довольно гибкий, что позволяет запускать, например:
% hg stat
A etc/foo.conf
M src/bar.c
M lib/libbar/loader.c
% hg commit -X '**.conf'
чтобы избежать фиксации любого файла с расширением .conf, независимо от того, насколько глубоко он находится в исходном дереве. В рабочей области, показанной выше, это должно было бы зафиксировать "src/bar.c" и "lib/libbar/loader.c", но не "etc/foo.conf".
Чтобы исключить несколько шаблонов имен файлов, используйте несколько опций -X, например:
% hg commit -X '**.conf' -X '**.sh'
Ответ 2
Традиционно это решается не версией самого файла, а версией его копии в качестве шаблона для других пользователей.
Итак, вы бы hg mv tnsnames.ora tnsnames.ora-template
, затем совершите, затем сделайте прямую копию файловой системы tnsnames.ora-template в tnsnames.ora и добавьте tnsnames.ora в файл .hgignore.
Последующие изменения в шаблоне все равно будут вытеснены, но они фактически не изменят рабочую среду, если кто-то не копирует шаблон в фактический файл.
Ответ 3
Вы могли бы псевдоним совершить что-то вроде "hg commit -X excluded_file.ext". Я никогда не пользовался mercurial, поэтому я просто иду по man-странице здесь.
Ответ 4
Ищите файл .hgignore в документации Mercurial.
Вот пример файла игнорирования.
# use glob syntax.
syntax: glob
*.elc
*.pyc
*~
# switch to regexp syntax.
syntax: regexp
^\.pc/