web-dev-qa-db-fra.com

Obtenez les fichiers modifiés depuis 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 sur la révision 5001 ne sont pas remplis dans le fichier texte de sortie.

Quelle est la commande exacte pour extraire la liste des fichiers entre les deux révisions (y compris de et vers les révisions, c'est-à-dire, y compris la révision 5001 et la révision 6001)?

36
Madhan

Essayez svn diff -r 5000:6001 au lieu. Pour comprendre cela, considérez ce qui suit: quelle serait la sortie de svn diff -r 100:100 ressembler? Il ne montrerait aucun changement, car les révisions sont les mêmes. Pour voir les modifications de la révision 100, nous devons utiliser -r 99:100.

53

La réponse de Dirk-Willem van Gulik est parfaite si vous voulez tous les changements. Cependant, si vous ne souhaitez modifier que la liste des fichiers, ajoutez - synthétisez le commutateur à votre commande,

svn diff -r 13447:HEAD
8
Rajendra Alapaty

Essayez svn log -r 5000:6001 -v pour obtenir la liste des fichiers. Cela donne la liste des fichiers classés par révision no. Ainsi, on peut avoir une meilleure idée de quels fichiers sont passés dans quelle révision en un coup d'œil.

8
subbu

svn diff -r v1:v2 --summarize | awk '{print $2}' > filelist.txt

Explication:

svn diff -r v1:v2 --summarize vous 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

7
Ankur