Excluyendo un archivo mientras se fusiona en Mercurial
merge tortoisehg (2)
Por supuesto. No fusionar titi.cs es realmente solo usar titi.cs exactamente como existe en A o en B (tu elección). Podrías hacerlo manualmente de esta manera:
hg update A
hg merge B
hg revert --rev A titi.cs
(intercambie A y B para ir en la otra dirección).
O puede hacerlo automáticamente en la Confguración de la herramienta de combinación con algo así en su .hgrc
.
[merge-patterns]
titi.cs = internal:local
Lo que le dice a Mercurial que siempre use "este, no ese" para los archivos que coincidan con ese patrón.
Yo uso Mercurial con TortoiseHg. Tengo dos ramas ( A
y B
) con dos archivos ( toto.cs
y titi.cs
).
¿Hay alguna manera, cuando quiero fusionar B
con A
, para excluir titi.cs
de la fusión, y solo fusionar toto.cs
? Si es posible, ¿cómo puedo hacer eso?
Si está hablando de un determinado archivo del que desea estar exento de la fusión, consulte la respuesta de @ Ry4chan . Esto es perfectamente válido: algunos archivos, como las configuraciones de creación de relaciones, pueden autogenerarse, y la resolución de conflictos para ellos es inútil. O bien, es posible que desee eliminar los cambios realizados en un archivo fuente.
Si, por otro lado, está tratando de imitar las fusiones de sistemas SVN limitados por archivos o directorios, tenga cuidado. El truco de revert
no significa que fusionaste algunos archivos y no fusionaste otros: fusionaste todo, la reversión fue solo una especie de fusión.
Si desea mover algunos cambios de una rama a otra (por ejemplo, respaldar una corrección en un determinado subsistema a una antigua rama estable), no fusiona los archivos con la corrección; en su lugar, fusiona los conjuntos de cambios que contienen la corrección; hg graft
te ayudará a hacerlo.