Dans Subversion, j'ai créé une branche à partir d'un coffre en utilisant svn copy
. Selon le SVN 1.5 manuel , "C’est le moyen le plus simple de" baliser "une révision de votre référentiel - il suffit de copier cette révision (généralement HEAD) dans votre répertoire de tags.
svn copy file:////svn/projectX/trunk file:///svn/projectX/branches/stefanl
Ensuite, je modifie la branche stefanl
. Je souhaite valider mes modifications dans le coffre, mais auparavant, j'aimerais voir les différences.
Comment puis-je comparer la branche 'stefanl' à la branche 'trunk'? J'ai essayé svn diff
, mais cela ne donnait pas beaucoup d'informations:
% svn diff file:////svn/projectX/trunk file:///svn/projectX/branches/stefanl
Property changes on: .
___________________________________________________________________
Modified: svn:mergeinfo
Reverse-merged /trunk:r1699-1870
Ajout aux réponses précédentes (si vous utilisez Tortoise SVN sous Windows):
Vous pouvez utiliser le diff Unix pour comparer des répertoires.
Pour trouver les fichiers manquants:
diff -r svn/projectX/trunk svn/projectX/branches/stefanl | grep -i only
Pour trouver quelles sont les différences entre les fichiers:
diff -ru svn/projectX/trunk svn/projectX/branches/stefanl
J'avais la même question et j'ai trouvé cette suggestion dans un fil de discussion: http://svn.haxx.se/users/archive-2003-08/0538.shtml
Sur la base des autres réponses et d'un peu de recherche, j'ai écrit un script qui le fait automatiquement.
#!/bin/bash
url=$(svn info | grep ^URL: | sed -e 's,^URL: ,,' )
root=$(svn info | grep '^Repository Root:' | sed -e 's,.*Root: ,,' )
trunk=$root/trunk
if [[ -n "$1" && ! -e "$1" ]]
then
echo "What? svn diff \"$1\"? really?"
exit
fi
svn diff $url/$1 $trunk/$1 > trunk.diff
Vous l'exécutez juste sous la branche. Vous pouvez passer un chemin (dir ou fichier) et cela fonctionnera comme prévu. Si ce n'est pas le cas, il ne fera que distinguer la branche et le tronc.
Si vous utilisez le plug-in Subversive avec Eclipse (autre idée?), Basculez vers la perspective de navigation du référentiel . Dans le panneau Référentiels SVN, cliquez avec le bouton droit de la souris sur un élément et sélectionnez l'option "Comparer ..." ..__ devrait être intuitif à partir de là.
Merci pour l'info les gars, je voudrais ajouter quelque chose pour améliorer la lisibilité des résultats diff. Si vous avez utilisé: svn diff svn: // URL: 9090/branches/PRD_0002 svn: // URL: 9090/branches/TST_0003> svn_diff_filename.txt
Vous pouvez également utiliser: Findstr "Index:" C:\path\svn_diff_filename.txt> svn_diff_file_list.txt
Cela vous apportera une liste lisible des fichiers qui ont des différences.
Cordialement, Kra.
Utilisation:
svn diff ^/trunkUrl/fileName ^/branchUrl/fileName
Cela vous donnera la différence entre un fichier en branche et un tronc.