Obtenir des fichiers modifiés à partir de la ligne de commande SVN entre deux révisions
J'ai besoin d'obtenir la liste des fichiers modifiés entre deux révisions dans SVN.
J'ai utilisé la commande suivante:
svn diff -r 5001:6001 --summarize https://svn.blah.com/../ > output.txt
Pour une raison quelconque, les fichiers modifiés lors de la révision 5001 ne sont pas renseignés dans le fichier texte de sortie.
Quelle est la commande exacte pour extraire la liste des fichiers entre les deux révisions (y compris les révisions from Et to, c'est-à-dire, y compris la révision 5001 et la révision 6001)?
5 réponses
Essayez svn diff -r 5000:6001
à la place. Pour comprendre cela, considérez ce qui suit: à quoi ressemblerait la sortie de svn diff -r 100:100
? Il ne montrerait aucun changement, car les révisions sont les mêmes. Pour voir les modifications pour la révision 100, nous devons utiliser -r 99:100
.
Essayez svn log -r 5000:6001 -v
pour obtenir la liste des fichiers. Cela donne la liste des fichiers classés par numéro de révision. Ainsi, on peut avoir une meilleure idée de ce que les fichiers sont allés dans quelle révision en un coup d'œil.
La réponse de Dirk-Willem van Gulik est parfaite si vous voulez tous les changements. Cependant, si vous ne voulez que la liste des fichiers modifiés, ajoutez -- summarize passez à votre commande,
svn diff -r 13447:HEAD
svn diff -r v1:v2 --summarize | awk '{print $2}' > filelist.txt
Explication:
svn diff -r v1:v2 --summarize
fournit l'état et le nom du fichier séparés par un caractère de tabulation. Vous devez sélectionner la chaîne après le caractère de tabulation - le deuxième champ. Vous pouvez le faire en utilisant awk
et rediriger la sortie vers filelist.txt
svn diff -r 5001:6001 ...local path hier ... > output.txt