web-dev-qa-db-fra.com

Entretien de l'historique SVN pour un fichier lorsque la fusion est faite à partir de la branche de développement au coffre?

Dans mon org, nous utilisons SVN pour le contrôle de la version afin que chaque construction (faite périodiquement), nous fusionnerons le code au tronc de la branche de développement (tous les développeurs vérifient dans cette branche). Donc, lorsque nous voulons une nouvelle succursale pour une nouvelle version, nous créons à partir du coffre effectuant une copie SVN.

Maintenant, dans la nouvelle branche, nous avons l'historique uniquement du coffre et non de les branches de développement précédentes .

Y a-t-il un moyen de maintenir l'histoire lorsque la fusion est faite à partir de la branche de développement au coffre?

Mise à jour :

Par l'histoire, je voulais dire une histoire de révision de chaque dossier. Qui l'a créé et qui le modifie.

Malheureusement, nous utilisons svn 1.6 en ce moment

7
Sam

Malheureusement, cela n'est pas pris en charge directement par Subversion avant la subversion 1.8. Les fichiers de la succursale et les fichiers dans le coffre sont des copies et la subversion garde la voie avec svn log uniquement pour des fichiers spécifiques, pas entre les branches.

Donc, la seule option est de filtre votre journal SVN. L'inconvénient majeur de cela est que vous filtrez-vous pour le nom de fichier, les fichiers déplacés ou copiés sur un autre nom ne sont pas appariés.

Subversion 1.7 et plus bas

Pour le garder pratique, j'aurais l'histoire du fichier qui vous intéresse pour votre coffre

svn log http://www.your.org/svn/repo/trunk/path/to/file.txt -g

Cela inclut le mergeinfo pour votre fichier comme celui-ci:

Commit message
Merged via: r6504, r6493, r6451, r6429

Vous pouvez maintenant voir où vient le fichier, puis recherchez ces révisions sur votre racine de référentiel avec

svn log http://www.your.org/svn/repo -r 6504

Subversion 1.8 et plus

La libération de Subversion 1.8 contient quelques améliorations apportées au client de ligne de commande qui rendent ce qui précède. Pour trouver toutes les entrées de journal pour un fichier spécifique, vous pouvez simplement le rechercher directement:

 svn log -v --search "src/foo.c" http://svn.example.com/svn/
8
malte

En cas de svn 1.8

>svn log -v REPO-ROOT --search FILENAME

0
Lazy Badger