Perte de L'historique SVN sur les fichiers lors du remaniement

lors d'un remaniement, je déplace des fichiers. De toute évidence, SVN voit cela comme supprimer le fichier et en créer un nouveau puisque L'IDE ne déclenche pas une opération SVN rename/move. Cependant, je pensais que le serveur SVN serait assez intelligent pour le détecter, mais ce n'est pas le cas... pas tout le temps de toute façon. J'utilise Tortoise SVN et je désactive le bouton "stop on copy/rename".

Est-ce prévu? Est-il un moyen de les contourner? Dois-je déplacer des fichiers en utilisant la tortue Les commandes de shell SVN plutôt que de laisser L'IDE faire un mouvement de fichier régulier?

aussi, est-il possible de forcer manuellement SVN à lier deux fichiers comme la même entité si elle ne le sait pas? Comme dire "/com/john/test.tct est la même chose que /com/john/test/fichier.txt"?

13
demandé sur Mr. Boy 2010-10-16 18:03:01

3 réponses

la façon SVN de faire ceci est en fait D'avoir SVN renommer le fichier (svn move ou en utilisant TortoiseSVN "Renommer"). Cependant, si vous absolument avoir un outil externe pour effectuer l'opération de renommage, vous pouvez utilisez TortoiseSVN pour réparer l'opération de déplacement. Ce qui suit indiquera à SVN que le nouveau fichier est en fait l'ancien fichier renommé:

  1. ouvrez la fenêtre" vérifier les Modifications".
  2. Marquer à la fois l'ancien fichier nom (porté disparu) et la nouvelle (répertorié comme non versionné)
  3. faites un clic droit sur cette sélection et choisissez "Repair Move".

Note: je suis en train de taper ceci à partir de la mémoire. Il pourrait ne pas être tout à fait correcte. Et il pourrait y avoir d'autres façons de le faire (comme le marquage des fichiers dans l'explorateur).

Si vous avez déjà perdu de l'histoire sur un fichier où vous le manquez mal, vous pouvez ressusciter l'ancien fichier (vous pouvez faire cela svn copy intégration de la version d'une ancienne révision dans son ancienne version place), fusionner l'historique du nouveau fichier, puis supprimer le nouveau fichier, et svn move l'ancien fichier au nom du nouveau fichier.

25
répondu sbi 2015-04-16 11:11:58

vous pouvez installer l'add-in (gratuit) de visual studio AnkhSVN. Cela va suivre vos renommages de fichier et vous ne perdrez pas l'historique dans subversion.

les renommages de fichiers sont suivis par le client subversion. Si vous renommez des fichiers sans utiliser le client subversion (en utilisant windows explorer ou visual studio solution explorer au lieu de TortoiseSVN ou AnkhSVN), subversion ne reconnaîtra pas l'opération de renommage (seulement une opération supprimer et ajouter).

BTW: L'utilisation D'AnkhSVN vous donne d'autres avantages, tels que l'affichage de l'état de subversion des fichiers directement dans l'Explorateur de solutions.

alternativement il y a aussi VisualSVN

2
répondu M4N 2010-10-16 14:11:29

tortue par défaut pour S'arrêter sur la copie lors de la lecture des logs.

si vous décochez cette case sur le visualiseur de log, alors vous pourrez voir toute l'histoire des fichiers/répertoires.

0
répondu LivCool 2015-10-09 09:45:30