Si vous avez effectué une fusion, vous pouvez constater, avant de valider les modifications, que vous ne souhaitez pas accepter les modifications fusionnées dans un des fichiers affectés. Alors vous faites .: par exempleSvn: annule les modifications de contenu de fichier sans annuler les informations de fusion associées?
$ svn revert foo.c
Cependant, cela semble également de revenir le mergeinfo lié à ce fichier. Ainsi, lorsque vous effectuez une fusion ultérieure, elle fusionnera exactement dans les mêmes changements.
Plutôt que de nous revenions on pourrait faire:
$ svn cat foo.c> foo.c
Mais cela ne semble pas la bonne façon de faire les choses? Y a-t-il quelque chose qui indique plus clairement ce que j'essaie d'accomplir, c'est-à-dire de dire «considère la fusion faite pour ce fichier mais ne change pas son contenu»?
Je peux me tromper à ce sujet mais je pense que le seul cas où la restauration d'un fichier retourne aussi son * mergeinfo * est lorsque la propriété * mergeinfo * est définie sur le fichier lui-même. Si vous effectuez régulièrement des fusions sur le répertoire racine de la branche, les fichiers eux-mêmes n'auront pas de propriété * mergeinfo *. –
Je prends soin de ne fusionner que des répertoires plutôt que des fichiers (il n'est pas toujours possible de fusionner la racine), et j'ai aussi ce problème. Subversion 1.5 et/ou 1.6 (je ne sais pas exactement quand le serveur a été mis à jour à 1.6) a ajouté beaucoup d'attributs 'mergeinfo' automatiquement, à la fois pour les fichiers et répertoires (y compris des choses comme' var' et 'log', où tout est 'svn: ignore'd et aucun changement significatif n'est jamais engagé ...). La pitié est, vous devez vérifier chaque fichier afin de savoir comment 'svn revert' fonctionnerait. Ainsi, 'svn cat' pourrait être la meilleure solution ... – Tobias