Je viens de faire une fusion en utilisant quelque chose comme :
svn merge -r 67212:67213 https://my.svn.repository/trunk .
Je n'avais que 2 fichiers, dont un simple ChangeLog
. Plutôt que de simplement fusionner mes modifications ChangeLog
, il a en fait récupéré les miennes ainsi que certaines précédentes qui n'étaient pas dans la destination ChangeLog
. J'ai remarqué qu'il y avait un conflit lorsque j'ai exécuté --dry-run, j'ai donc mis à jour ChangeLog
, et il y avait toujours un conflit (et j'ai vu le conflit quand j'ai fait la fusion proprement dite).
J'ai ensuite différé sur le fichier à partir duquel je fusionnais :
svn diff -r 67212:67213 ChangeLog
Et je ne vois que les changements que j'avais apportés, donc je sais que les changements supplémentaires n'ont pas été inclus d'une manière ou d'une autre.
Cela me fait craindre que la fusion ne se contente pas de prendre ce que j'ai changé, ce à quoi je m'attendais. Quelqu'un peut-il expliquer ce qui s'est passé ?
MISE À JOUR : En réponse à NilObject :
Donc, j'ai 2 fichiers modifiés, seul ChangeLog est pertinent, l'autre bien fusionné. Lorsque je vais à la caisse de mon coffre habituel, j'exécute la commande diff ci-dessus et je vois :
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.
Après ma fusion des modifications précédentes, le diff de ChangeLog ressemble à ceci :
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.
Notez que l'entrée qui a été insérée de manière incorrecte n'était pas dans le fichier avec lequel je la fusionne, mais ce n'était pas l'une de mes modifications et n'aurait pas dû être fusionnée de toute façon. C'était facile à corriger (en supprimant les lignes supplémentaires qui ne faisaient pas partie de mes modifications), mais cela me fait toujours craindre la fusion automatique dans SVN
.