Existe uma opção ignorar-on-commit em mercurial?
Pergunta
Existe alguma maneira de ignorar alterações a alguns arquivos em um cometemos com mercurial?
Eu tenho uma situação específica em que temos um arquivo tnsnames.ora do Oracle padrão que aponta para 127.0.0.1, mas alguns desenvolvedores irá modificá-lo para apontar para outros sistemas, mas nós não queremos mudar o arquivo padrão .
Em subversão, eu simples já adicionou isto à lista de alterações ignore-on-commit. Existe uma maneira de fazer isso em mercurial?
Solução
Se os arquivos que deseja omitir a partir do comando "hg commit" já são "controladas", você deve usar a opção -X. O padrão passado para -X é bastante flexível, tornando possível executar por exemplo:
% hg stat
A etc/foo.conf
M src/bar.c
M lib/libbar/loader.c
% hg commit -X '**.conf'
para evitar cometer qualquer arquivo com a extensão ".conf", independentemente de quão profundo na árvore de origem vive. No espaço de trabalho mostrado acima deste cometeria "src / bar.c" e "lib / libbar / loader.c" mas não "etc / foo.conf".
Para excluir vários padrões de nomes de arquivos, usar múltiplas opções -X, ou seja:.
% hg commit -X '**.conf' -X '**.sh'
Outras dicas
Tradicionalmente, este é resolvido por não versionamento o arquivo em si, mas por versionamento uma cópia do mesmo como um modelo para outros usarem.
Então você hg mv tnsnames.ora tnsnames.ora-template
, em seguida, cometeu, em seguida, fazer uma cópia do sistema de arquivos direto de tnsnames.ora-modelo para tnsnames.ora, e adicionar tnsnames.ora para o arquivo hgignore.
As alterações subsequentes ao modelo vai ainda são empurrados para fora, mas eles não vão realmente mudar o ambiente de trabalho, a menos que alguém copia o modelo para o arquivo real.
Você poderia apelido comprometer com algo como 'hg cometer excluded_file.ext -X' Eu nunca usei mercurial, por isso estou indo só pela página homem aqui.
Procure hgignore arquivo na documentação do Mercurial.
Aqui está um exemplo ignorar arquivo.
# use glob syntax.
syntax: glob
*.elc
*.pyc
*~
# switch to regexp syntax.
syntax: regexp
^\.pc/