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?

Foi útil?

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/
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top