70 votes

TortoiseSVN utilisation de svn:mergeinfo, est-il un moyen de le désactiver?

Quand je fais un TortoiseSVN de fusion, il inclut un tas de répertoires, et quelques fichiers dans les fichiers modifiés, même sais qu'il y a pas de réels changements.

Il modifie la propriété svn:mergeinfo

Est-il une raison pourquoi ces propriétés définies sur le répertoire/fichiers sont nécessaires? Est-il possible de l'obtenir autour de ne pas faire ces changements à l' svn:mergeinfo?

J'ai l'habitude de simplement revenir les éléments, puis s'engager, mais cela augmente le temps supplémentaire.

44voto

RibaldEddie Points 3113

Ce qui se passe, il est très probable, car ces fichiers et répertoires ont la propriété svn:mergeinfo définie à partir d'un précédent de fusion. Je ne pense pas que c'est généralement une bonne idée de fusionner des fichiers ou des répertoires dans un chemin qui provoque la mergeinfo être écrites dans des fichiers individuels. Vous devriez prendre l'habitude de la fusion au niveau le plus élevé possible pour votre flux de travail, de sorte que le mergeinfo propriété est réglée uniquement sur les éléments de structure des répertoires, tels que coffre /ou /branches/1.0.

Toutefois, si vous ne vous trouvez avec mergeinfo propriétés des fichiers et dossiers individuels, il y a deux choses que vous pouvez faire: la première chose à faire est simplement de supprimer la propriété svn:mergeinfo à partir des fichiers et des répertoires en question. Je ne suis pas sûr de ce qui est recommandé, sauf si vous savez vraiment ce que vous faites, et les effets que cela pourrait être. Lire la documentation avant de faire cela!

La deuxième chose que vous pouvez faire est d'engager la modification de la propriété de la façon SVN veut que vous, qui, si vous faites confiance au logiciel, est probablement la bonne chose à faire.

Cela dit, j'ai travaillé avec mes coéquipiers pour obtenir dans les habitudes de droite, de sorte que nous n'avons pas cette gêne plus du tout.

39voto

Wim Coenen Points 41940

mise à jour: cela devrait maintenant être résolu dans SVN 1.7. À partir de la release notes:

Fusionne cesse d'enregistrer mergeinfo (décrivant la fusion) sur les sous-arbres (qui ont leurs propres explicite mergeinfo), si le sous-arbre a pas été affectée par la fusion. Cela devrait réduire considérablement le nombre de fausses propriété svn:mergeinfo changements pour les utilisateurs qui ont un grand nombre de sous-arbres explicite mergeinfo.


Ce qui se passe est que, une fois un fichier/dossier est explicite mergeinfo, chaque ultérieure de fusion de la direction de la mettre à jour mergeinfo même si l' fichier/dossier est sans rapport. C'est ennuyeux car il introduit de plus en plus et l'encombrement dans la liste de modifications pour chaque fusion.

Pour éviter cela, seule la fusion avec le dossier "racine" de la branche, par exemple "/branches/maintenance2.x". Aucun des fichiers ou des dossiers ci-dessous "/branches/maintenance2.x" devrait alors obtenir mergeinfo. Suivez la fusion des conseils dans le svn livre.

Malheureusement, même si vous ne fusionner que dans le dossier "racine" de la direction générale, vide svn:mergeinfo propriétés peuvent encore apparaître dans les dossiers individuels et les dossiers lorsqu'ils sont copiés, pour indiquer qu'ils n'ont pas reçu le même fusionne comme leurs frères et sœurs.

Il est probablement plus sûr de supprimer le superflu de la sous-arborescence mergeinfo. Une façon de faire cela est de faire un appel récursif à la suppression de la propriété svn:mergeinfo sur chaque fichier et dossier dans la racine du projet. (Mais garder le mergeinfo sur le dossier racine lui-même!)

Alternativement, vous pouvez mettre à niveau vers la subversion 1.6. Je crois avoir vérifié qu'il corrige ce problème. Il semble même de supprimer le superflu mergeinfo ajouté par versions antérieures pour vous.

edit: au vu des commentaires il y a encore des cas svn 1.6 où superflu sous-arbre mergeinfo s'affiche. Mais je n'ai pas été capable de reproduire cela.

14voto

Chase Seibert Points 7609

Si vous faites votre fusionne avec l'option --ignore-ascendance option, le mergeinfo propriétés ne va pas être créé en premier lieu.

svn merge --ignore-ancestry -c 1234 svn://sourcecontrol .

3voto

Mauricio Scheffer Points 70470

svn:mergeinfo est la propriété de la Subversion utilise pour la piste de fusion de l'histoire. Je venais de le laisser faire ce qu'il a à faire... vous pourriez avoir besoin de fusion de l'histoire suivi plus tard et de découvrir qu'il ne fonctionne pas parce que vous n'avez pas commis ces propriétés.

1voto

Paul Wagland Points 10487

Bien que ce soit tout à fait une vieille question, j'ai juste pensé que je voudrais ajouter qu'au moins une partie de ce bogue a été corrigé dans la subversion 1.5.5. À partir de la 1.5.5 CHANGEMENTS fichier:

do not create mergeinfo for wc-wc moves or copies (r34184, -585)

C'est, il y avait un bug dans le svn avant 1.5 où il serait de créer mergeinfo entrées qu'il n'a pas les utiliser, et sont superflus, et c'est probablement ce que l'original interlocuteur était de frapper si elles ont eu beaucoup de svn:mergeinfo propriétés.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X