Question

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 mon ChangeLog changements, il a en fait retiré le mien ainsi que quelques précédents 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 lorsque j'ai effectué la fusion).

J'ai ensuite comparé le fichier à partir duquel je fusionnais :

svn diff -r 67212:67213 ChangeLog

Et je vois juste les changements que j'ai apportés, donc je sais que des changements supplémentaires n'ont pas été apportés d'une manière ou d'une autre.

Cela me fait craindre que la fusion ne prenne pas simplement ce que j'ai modifié, 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 a 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, la différence 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é incorrectement extraite ne figurait pas dans le fichier dans lequel je la fusionne, mais elle ne faisait pourtant pas partie de mes modifications et n'aurait de toute façon pas dû être fusionnée.C'était facile à corriger (supprimer les lignes supplémentaires qui ne faisaient pas partie de mes modifications), mais cela me fait toujours craindre de fusionner automatiquement dans SVN.

Était-ce utile?

La solution

Cela ne se produit qu'en cas de conflits - en gros, svn a essayé de fusionner le changement, mais (en gros) a vu le changement comme :

Ajouter

2008-08-06  Mike Stone  <myemail>

* changed_file: Details.

avant

2008-08-06  Someone Else  <their_email>

Et il n'a pas pu trouver la ligne Someone Else lors de la fusion, alors il a ajouté ce morceau pour le contexte lors de l'introduction du conflit.S'il s'agissait d'une fusion non conflictuelle, seules les modifications attendues auraient été appliquées.

Autres conseils

Il n'y a pas vraiment assez d'informations pour continuer ici.

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

fusionnera tous les fichiers modifiés dans la révision 67212 dans le dossier /trunk du référentiel et les fusionnera dans votre répertoire de travail actuel.Si tu fais:

svn log -r 67212

Quels fichiers cela montre-t-il modifiés ?La fusion extraira uniquement les modifications du premier argument et les appliquera au second.Il n'est pas téléchargé sur le serveur dans le premier argument.

Si cela ne répond pas à votre question, pourriez-vous publier plus de détails sur ce qui se passe exactement ?

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top