Supprimer les svn:mergeinfo propriétés
Quand j'ai fusion des trucs dans mon référentiel Subversion veut ajouter/modifier beaucoup de svn:mergeinfo
propriétés pour les fichiers qui sont totalement sans rapport avec les choses que je veux fusionner.
Questions à propos de ce comportement ont déjà été posées ici sur Stack Overflow:
- SVN Mergeinfo propriétés sur les voies autres que la copie de travail de la racine
- Est-il un moyen de faire de TortoiseSVN utilisation de svn:mergeinfo off?
De ce que je comprends de la les sujets mentionnés ci-dessus, il ressemble à un grand nombre de fichiers dans mon référentiel explicite svn:mergeinfo
propriétés sur eux, quand ils ne le sont pas. Le conseil est de réduire la quantité et de ne mettre ces propriétés sur les fichiers/dossiers.
Alors maintenant ma question: comment puis-je facilement supprimer ceux qui sont inutiles propriétés? Je suis en utilisant TortoiseSVN, mais je suis réticent à vérifier manuellement/corriger des centaines de fichiers. Est-il un moyen plus simple pour supprimer ceux qui sont inutiles svn:mergeinfo
propriétés?
P. S. je suis pas à la recherche pour le C++ SVN code de l'API.
Vous devez vous connecter pour publier un commentaire.
Ici est une autre façon de supprimer tous les sous-arbre svn:mergeinfo propriétés, mais pas à la racine du dossier (ce qui est nécessaire pour la ramification de fonctionner correctement).
À partir de la racine du projet:
Ici est un moyen de supprimer tous les sous-arbre svn:mergeinfo propriétés. Exécuter à l'intérieur de la racine de votre dépôt:
Dans une seule ligne pour faciliter le copier/coller:
De prévisualiser les fichiers cet effet avant de l'exécuter, de modifier la dernière "propdel" à "propget" ou de supprimer la dernière xargs pipe tout à fait.
Comme mentionné dans ce fil:
Que je ne suis pas à l'aise avec les aveugles
svn:merge-info
propriété de suppression, j'ai mis en place un outil pour analyser la situation actuelle sur une copie de travail et enlever autant de fusionner les révisions que possible de la non-racine de fusion-info propriétés. Après humaines supplémentaires des vérifications et des contrôles, les changements sur la copie de travail peut être engagée.Ici, il est: svn-propre-mergeinfo
N'hésitez pas à signaler tout problème sur son utilisation pour l'obtenir améliorée.
Subversion 1.10 introduit un nouvel outil dédié à cette tâche:
svn-mergeinfo-normalizer
Je sais, ça fait un moment, mais j'ai rencontré un problème similaire. Je suis en utilisant TortoiseSVN 1.6.7. Il se trouve que la propriété a été à la racine de ma copie de travail. Quand j'ai regardé les propriétés de la racine et cliqué sur Supprimer sur svn:mergeinfo, il m'a demandé si je veux le supprimer de manière récursive. Ce débarrassé de tous mes svn:mergeinfo cockups.
Si vous êtes sûr que vous voulez de masse-supprimer mergeinfo propriétés, vous pouvez utiliser le script BASH suivant.
Il obtient une liste des fichiers modifiés, des filtres à mergeinfo seulement des changements, des bandes de tout, mais le chemin du fichier, convertit le un-par-ligne de chemins dans un espace délimité de liste, et les appels de revenir sur cette liste.
--xml
drapeau et d'un analyseur XML; rien d'autre ne peut changer entre les versions, que les contrats à terme de compatibilité sur le texte le format de sortie n'est pas garanti.Plutôt que de simplement aveuglément la suppression de la mergeinfo propriétés, il est également possible de compléter le "manque" fusionne.
Copiez le mergeinfo propriété à partir du dossier racine, puis effectuer une fusion sur le dossier de l'enfant pour le chemin relatif et exactement la même liste de révision. (Vous pouvez, mais n'ont pas besoin d', seulement énumérer les différences entre cette liste et celui qui est déjà sur le dossier.)
Normalement, cette fusion doit seulement changer la mergeinfo propriétés, et non pas les fichiers réels. (Si c'est effectivement changement des fichiers, puis l'une des précédentes fusionne n'était qu'une partielle, de fusion, qui peut être à l'origine de problèmes de toute façon.)
Faire ce devrait être la suppression de la mergeinfo bien pour vous, une fois que vous avez obtenu à la fois correspondre exactement. Vous pouvez aussi avoir besoin de faire l'inverse: se fondre dans la racine de tout fusionner les révisions présents uniquement sur le dossier enfant (encore une fois, vous pouvez simplement coller la liste complète et laissez-SVN trier trouver les différences pour vous).
De faire des changements dans une structure de répertoire, ce serait (non-DOS "trouver" uniquement):
De l'exécution d'une 1.6.12 client connecté à un 1.5 serveur, j'ai un problème similaire; il est un sous-répertoire dans le projet qui a besoin de sa propre svn:mergeinfo, mais ayant 121 entrées (dont 5 répertoires ci-dessous ./var avec "svn:ignore *") semble un peu inapproprié. Ainsi, il serait agréable d'avoir un (par exemple en Python) script qui est capable de supprimer les évidemment superflu infos de fusion et de dire au sujet d'autres différences ...