Qual é a maneira mais fácil de confirmar e enviar um único arquivo, deixando apenas outras modificações?

Sou relativamente novo no Mercurial e minha equipe está testando agora como um substituto do Subversion.

Como posso confirmar e enviar um único arquivo para outro repositório, deixando outras modificações no meu diretório de trabalho não confirmadas (ou pelo menos não enviadas para o outro repositório)?

Isso acontece para nós com migrações de banco de dados. Queremos consolidar a migração para o controle de origem para que um DBA possa visualizá-lo e editá-lo enquanto estamos trabalhando nas modificações de código para acompanhar essa migração do banco de dados. As mudanças ainda não estão prontas, então não queremos empurrar todas elas para fora.

Na subversão, eu simplesmente faria:

svn add my_migration.sql  
# commit only the migration, but not the other files I'm working on
svn commit -m "migration notes" my_mygration.sql

e continue trabalhando localmente.

Isso não funciona com o mercurial, como quando eu estou empurrando para o outro repositório, se houver mudanças que eu não tenha puxado para baixo, ele quer que eu as puxe para baixo, mescle-as e faça essa mesclagem para o repositório. Commits após uma mesclagem não permite omitir arquivos, o que força você a confirmar tudo em seu repositório local.

A coisa mais fácil que eu posso descobrir é submeter o arquivo ao meu repositório local, clonar meu repositório local, buscar novas alterações do repositório atual, mesclá-las e confirmar essa mesclagem, e elas empurram minhas alterações para fora.

hg add my_migration.sql 
hg commit -m "migration notes" my_migration.sql 
cd ..
hg clone project project-clone
cd project-clone
hg fetch http://hg/project
hg push  http://hg/project

Isso funciona, mas parece que estou perdendo algo mais fácil, alguma maneira de dizer ao Mercurial para ignorar os arquivos que já estão no meu diretório de trabalho, apenas fazer a mesclagem e enviar os arquivos. Eu suspeito que as filas do mercurial podem fazer isso, mas eu ainda não mordoi totalmente o mq.

questionAnswers(6)

yourAnswerToTheQuestion