Estou tentando confirmar apenas alguns arquivos com o Mercurial. Por causa do hg ter adição automática sempre que tento confirmar uma alteração, ele deseja confirmar todos os arquivos. Mas não quero isso porque certos arquivos ainda não estão "prontos".
Há sim
hg commit -I thefile.foo
mas isso é apenas para um arquivo. A melhor maneira para mim seria se eu pudesse desativar a adição automática como no Git. Isso é possível?
version-control
mercurial
commit
Praveen Kumar Purushothaman
fonte
fonte
hg ci foo bar baz
Respostas:
Você pode especificar os arquivos na linha de comandos, como tonfa escreve:
Isso simplesmente funciona e é isso que faço o tempo todo. Você também pode usar o
--include
sinalizador que encontrou e usá-lo várias vezes como este:Você pode até usar um conjunto de arquivos para selecionar os arquivos que deseja confirmar:
Não existe uma configuração que desative o comportamento de adição automática e faça o Mercurial funcionar como o Git. No entanto, a extensão mq pode ser interessante. Essa é uma extensão avançada, mas permite que você faça
No entanto, eu realmente não uso o MQ para esse fim, pois acho que basta especificar os nomes de arquivos na linha de comando.
fonte
Se você deseja confirmar alguns arquivos e excluir muitos outros, liste explicitamente os arquivos que deseja confirmar.
-I
só é necessário se você deseja usar padrões em vez de arquivos.Se você deseja confirmar muitos arquivos e excluir apenas alguns, usar
-X
é mais conveniente.Por exemplo, dado um repositório contendo "arquivo_1", "arquivo_2" e "arquivo_3", o seguinte é equivalente, mas o último é mais fácil / rápido de digitar:
fonte
A partir do 3.8, você também pode usar
hg commit --interactive
para selecionar os arquivos (antes do 3.8, você pode usar a extensão do crecord para obter uma funcionalidade semelhante). O sinalizador--interactive
(ou apenas-i
) fará com que o hg solicite os arquivos que você deseja incluir no commit. Como um bônus adicional, você pode até incluir / excluir partes nos arquivos.Aqui está um exemplo de como a interface se parece. Observe que esta é uma captura de tela antiga (na verdade, do crecord), portanto a interface mudou um pouco (mas o básico é o mesmo).
Observe que para obter essa interface, você precisa da interface de maldições ativada. Você pode fazer isso para uma execução única com
hg commit --config ui.interface=curses --interactive
ou geralmente adicionando o seguinte ao seu.hgrc
:fonte