Pregunta

Acabo de fusionar usando algo como:

svn merge -r 67212:67213 https://my.svn.repository/trunk .

Sólo tenía 2 archivos, uno de los cuales es simple. ChangeLog.En lugar de simplemente fusionar mi ChangeLog cambios, en realidad sacó el mío 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).

Luego diferí en el archivo desde el que me estaba fusionando:

svn diff -r 67212:67213 ChangeLog

Y veo solo los cambios que hice, así que sé que los cambios adicionales no llegaron allí de alguna manera.

Esto me preocupa que la fusión no sea en realidad solo tomar lo que cambié, que es lo que hubiera esperado.¿Alguien puede explicar lo que pasó?

ACTUALIZAR:En respuesta a NilObject:

Entonces, he cambiado 2 archivos, solo ChangeLog es relevante, el otro se fusionó bien.Cuando voy a la caja de mi baúl habitual, 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 combinación de los cambios anteriores, la diferencia de 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 introdujo 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 haberse fusionado de todos modos.Fue fácil de solucionar (eliminar las líneas adicionales que no formaban parte de mis cambios), pero todavía me preocupa la fusión automática en SVN.

¿Fue útil?

Solución

Esto solo sucede con los conflictos: básicamente, svn intentó fusionar el cambio, pero (en términos generales) vio el cambio como:

Agregar

2008-08-06  Mike Stone  <myemail>

* changed_file: Details.

antes

2008-08-06  Someone Else  <their_email>

Y no pudo encontrar la línea Alguien más mientras realizaba la fusión, así que arrojó ese fragmento para darle contexto al incluir el conflicto.Si se tratara de una combinación no conflictiva, solo se habrían aplicado los cambios esperados.

Otros consejos

Realmente no hay suficiente información para continuar aquí.

svn merge -r 67212:67213 https://my.svn.repository/trunk .

fusionará todos los archivos modificados en la revisión 67212 en la carpeta /trunk del repositorio y los fusionará en su directorio de trabajo actual.Si lo haces:

svn log -r 67212

¿Qué archivos muestra cambiados?Merge solo extraerá cambios del primer argumento y los aplicará al segundo.No se vuelve a cargar en el servidor en el primer argumento.

Si esto no responde a su pregunta, ¿podría publicar más detalles sobre qué está sucediendo exactamente?

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top