que acabo de hacer una fusión usando algo como:SVN fusión se fusionó material extra
svn merge -r 67212:67213 https://my.svn.repository/trunk .
sólo tenía 2 archivos, uno de los cuales es un simple ChangeLog
. En lugar de simplemente fusionar mis cambios ChangeLog
, realmente extrajo los míos más algunos anteriores que no estaban en el destino ChangeLog
. Noté que había un conflicto cuando ejecuté --dry-run, así que actualicé ChangeLog
, y todavía había un conflicto (y vi el conflicto cuando hice la fusión real).
que luego diffed en el archivo que estaba la fusión de:
svn diff -r 67212:67213 ChangeLog
y veo sólo los cambios que había hecho, así que sé que los cambios adicionales no llegaron allí de alguna manera.
Esto me preocupa que fusionar no sea solo tomar lo que cambié, que es lo que esperaba. ¿Alguien puede explicar lo que pasó?
ACTUALIZACIÓN: En respuesta a NilObject:
Por lo tanto, tengo 2 archivos cambiados, solamente es relevante registro de cambios, el otro bien fusionada. Cuando voy a mi salida del tronco normal, hago el comando diff arriba y veo:
Index: ChangeLog
===================================================================
--- ChangeLog (revision 67212)
+++ ChangeLog (revision 67213)
@@ -1,3 +1,7 @@
+2008-08-06 Mike Stone <myemail>
+
+ * changed_file: Details.
+
2008-08-06 Someone Else <their_email>
* theirChanges: Details.
Después de mi fusión de los cambios anteriores, el diff del Changelog se ve así:
Index: ChangeLog
===================================================================
--- ChangeLog (revision 67215)
+++ ChangeLog (working copy)
@@ -1,3 +1,14 @@
+<<<<<<< .working
+=======
+2008-08-06 Mike Stone <myemail>
+
+ * changed_file: Details.
+
+2008-08-06 Someone Else <their_email>
+
+ * theirChanges: Details.
+
+>>>>>>> .merge-right.r67213
2008-08-05 Someone Else2 <their2_email>
* olderChange: Details.
Tenga en cuenta que la entrada que se extrajo incorrectamente no estaba en el archivo en el que la estoy fusionando, pero aún así no fue uno de mis cambios y no debería haber sido fusionada de todos modos. Fue fácil de arreglar (eliminar las líneas adicionales que no formaban parte de mis cambios), pero todavía me preocupa la fusión automática en SVN
.
Entiendo por qué es así (cuando se realiza una fusión visual/manual, SVN debe proporcionar un documento de base "Existente" para el lado "suyo", por lo que es la última revisión en sus criterios de fusión), pero es realmente desagradable! (al menos para alguien nuevo en el juego Merge y maravillado por la maravilla de los cherrypickings y otras bondades de fusión) – Tao