¿Cuál es la forma más fácil de enviar y enviar un solo archivo mientras deja otras modificaciones?

Soy relativamente nuevo en Mercurial y mi equipo lo está probando en este momento como un reemplazo de Subversion.

¿Cómo puedo enviar y enviar un solo archivo a otro repositorio y dejar otras modificaciones en mi directorio de trabajo sin confirmar (o al menos no enviarlas al otro repositorio)?

Esto nos sucede con las migraciones de bases de datos. Queremos comprometer la migración al control de origen para que un DBA pueda verlo y editarlo mientras trabajamos en las modificaciones de código para acompañar la migración de la base de datos. Los cambios aún no están listos, así que no queremos presionarlos a todos.

En la subversión, simplemente haría:

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

y seguir trabajando localmente.

Esto no funciona con mercurial como cuando lo estoy enviando al otro repositorio, si hay cambios en él que no he derribado, quiere que los tire hacia abajo, los fusione y confíe esa fusión. el repositorio Las confirmaciones después de una fusión no le permiten omitir archivos, por lo que lo obliga a confirmar todo en su repositorio local.

Lo más fácil que puedo averiguar es enviar el archivo a mi repositorio local, clonar mi repositorio local, buscar cualquier cambio nuevo en el repositorio real, combinarlos y confirmar la fusión, y ellos eliminarán mis cambios.

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

Esto funciona, pero parece que me falta algo más fácil, una forma de decirle a mercurial que ignore los archivos que ya están en mi directorio de trabajo, solo haga la combinación y envíe los archivos. Sospecho que las colas mercuriales pueden hacer esto, pero aún no he desarrollado completamente mq.

Respuestas a la pregunta(6)

Su respuesta a la pregunta