Comment puis-je éviter un grand nombre de svn: mergeinfo lors de la fusion tronc une caractéristique branche dans SVN

StackOverflow https://stackoverflow.com/questions/3785743

  •  05-10-2019
  •  | 
  •  

Question

J'essaie de garder une branche fonction à jour en fusionnant le tronc dans la branche. Le problème est que d'environ 2000 fichiers qui était là quand la branche a été créée, et qui a été laissé intact à la fois la branche et le tronc est mis à jour se avec rien mais svn: mergeinfo. Le projet est assez grande échelle, et l'impact sur l'histoire de notre SVN est si grand, qu'il rend la fusion engage l'histoire inutilisable car il est marquage littéralement des milliers de fichiers modifiés, même si le seul changement à ces fichiers, est fait par SVN lui-même.

J'ai essayé

  • En utilisant la même version que le client repo (1.5.2)
  • Utiliser ma version actuelle du client 1.6.10
  • Fusion d'une gamme de révisions, de la branche début à la tête

Je dois mentionner que je cherchais attentivement la documentation SVN cette vérification. Donc, pas de règles doivent être brisées (par exemple. Pas commutées sous-arbres, copie locale propre etc.)

Était-ce utile?

La solution

Bascially pour nettoyer le dépôt, vous devez exécuter les opérations suivantes sur votre branche d'intégration afin que le changement des fans de là: -

C:> svn propdel svn: mergeinfo -R

i.e.. vous le faites dans le coffre afin que la libération future et les branches caractéristiques ne sont pas polluées. Lors de la fusion des branches existantes, vous pouvez ignorer tous les svn:. Changements de merginfo ci-dessous la « racine de fusion », comme ils seront hérités de toute façon

J'ai écrit un blog sur cette question un certain temps qu'elle couvre plus en détail: -

Nettoyage svn: mergeinfo Déjections http://chrisoldwood.blogspot.com/2010/03/cleaning -up-svnmergeinfo-droppings.html

Autres conseils

svn ajoutera mergeinfo propriétés à des fichiers individuels si elle pense que leur histoire de fusion diffère de celle de leur répertoire parent. Une fois que cela est arrivé, tous fusion ultérieure, peu importe comment inoffensif, provoque ces propriétés mergeinfo à être mis à jour. J'ai trouvé la première moitié de cet article utile de comprendre pourquoi cela se produit.

Si vous voulez éviter ces changements de mergeinfo constante, vous devrez « ranger » les propriétés mergeinfo existantes sur votre branche. Le plus sûr, mais plus laborieuse, solution est d'utiliser svn propget -R svn:mergeinfo sur la branche, puis étudier les différences entre les mergeinfo sur les fichiers individuels et l'mergeinfo de leur répertoire parent. Vous pouvez constater que les différences sont faibles, et que « la fusion svn » ing un petit nombre de révisions individuelles sera suffisant pour déclencher mergeinfo élision, ce qui provoque toutes les propriétés individuelles mergeinfo à disparaître.

Si vous êtes confiant vous comprenez comment fonctionne mergeinfo, vous pouvez aussi simplement patauger et modifier ou supprimer manuellement le mergeinfo des fichiers incriminés.

Si vous avez un tel mergeinfo sur les fichiers qui ne sont pas vraiment changé ou quelqu'un d'autre ne se confond pas de la racine de la copie de travail ... La seule solution est enlevé le svn: mergeinfo des fichiers, parce que le seul endroit est dans la copie de travail racine nulle part ailleurs. Et un autre point que vous devez mettre à jour le référentiel pour 1.6.X ..

Comme je ne suis pas à l'aise avec la suppression de la propriété svn:merge-info aveugle, je l'ai mis en place un outil pour analyser la situation actuelle sur une copie de travail et de supprimer les révisions beaucoup de fusion possible des propriétés de fusion-info non root. Après vérification des humains et des contrôles supplémentaires, les modifications sur la copie de travail peuvent être commis.

Ici, il est: svn-nettoyage mergeinfo

Ne pas hésiter à signaler toute question au sujet de son utilisation pour l'obtenir améliorée.

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