Dans svn, j'ai une branche qui a été créée, par exemple à la révision 22334. Des validations ont ensuite été effectuées sur la branche.
Comment puis-je obtenir une liste de tous les fichiers qui ont été modifiés sur la branche par rapport à ce qui se trouve sur le coffre? Je ne veux pas voir les fichiers qui ont été modifiés sur le coffre entre la création de la branche et "maintenant".
Cela va le faire je pense:
svn diff -r 22334:HEAD --summarize <url of the branch>
Vous pouvez également obtenir une liste rapide des fichiers modifiés si c’est tout ce que vous cherchez à l’aide de la commande status avec l’option -u.
svn status -u
Cela vous indiquera la révision du fichier dans la base de code actuelle par rapport à la dernière révision du référentiel. Je n'utilise diff que lorsque je veux réellement voir des différences dans les fichiers eux-mêmes.
Il y a ici un bon tutoriel sur la commande svn qui explique beaucoup de ces scénarios courants: Référence de la commande SVN
Vous pouvez utiliser la commande suivante:
svn status -q
Selon svnbook :
With --quiet (-q), it prints only summary information about locally modified items.
ATTENTION: La sortie de cette commande ne montre que votre modification. Je suggère donc de faire un svn up
Pour obtenir la dernière version du fichier, puis d'utiliser svn status -q
Pour obtenir les fichiers que vous avez modifiés.
Cela ne listera que les fichiers modifiés:
svn status -u | grep M
L'option -u affichera notamment les fichiers objet s'ils sont ajoutés lors de la compilation.
Donc, pour surmonter cela en plus, vous pouvez utiliser comme ceci.
svn status -u | grep -v '\?'
echo You must invoke st from within branch directory
SvnUrl=`svn info | grep URL | sed 's/URL: //'`
SvnVer=`svn info | grep Revision | sed 's/Revision: //'`
svn diff -r $SvnVer --summarize $SvnUrl
svn log -q -v
montre les chemins et masque les commentaires. Tous les chemins sont en retrait afin que vous puissiez rechercher des lignes commençant par des espaces. Puis dirigez-vous vers cut
et sort
pour ranger:
svn log --stop-on-copy -q -v | grep '^[[:space:]]'| cut -c6- | sort -u
Cela obtient tous les chemins mentionnés sur la branche depuis son point de branche. Notez que la liste sera supprimée et ajoutée, ainsi que les fichiers modifiés. Je viens d’utiliser cela pour obtenir ce que je devrais avoir à dire sur une branche légèrement en désordre d’un nouveau développeur.