7
votes

SVN: Comment puis-je répertorier tous les fichiers d'un Changeelist à Subversion?

Comment obtenir une liste de fichiers dans un Changeelist SVN sans informations sauf la liste des fichiers?

Je veux une liste de fichiers dans un changelist dans un format que je peux utiliser dans Bash's $ (). Je commence par svn st -cl 3011 , qui répertorie les fichiers mais avec beaucoup de jonchec supplémentaire:

Effectuer le statut sur l'élément externe à 'FOO'

? FOO / BAR

Statut d'exécution sur l'élément externe à 'FOO / BAR'

--- Changelist '3011':

m src / math / math.cc

un src / math / déterminant.cc

un src / math / déterminant.h

m src / math / matrix.h

C'est beaucoup d'informations pour essayer de sedrer ou d'analyser, et je suis inquiet que je vais le gâcher et finir par manque à manquer un fichier dans la Changeelist ou en ajoutant des choses qui ne sont pas dans la Changeelist. -q n'aide pas beaucoup.

Y a-t-il un moyen d'obtenir SVN de me donner src / math / math.cc SRC / math / déterminant.cc src / math / déterminant.h src / math / matrix.h ?

merci, Ian


0 commentaires

5 Réponses :


1
votes

Si cela ne vous dérange pas d'aller un répertoire à la fois que vous pouvez faire par répertoire:

SVN Status LIB | awk '{imprimé $ 2}'

Où vous échangez liber pour le dir en question.


3 commentaires

Malheureusement, encore une fois, le "--- Changeelist" 3510 ': "sera imprimé, de même que certains" Statut exécutant sur l'élément externe "et les noms des éléments externes.


@Ian bizarre. Doit être ma version (VisualSvn 1.6.12) comme lorsque je l'exécute, je reçois uniquement des noms de fichiers.


Je pense que c'est notre configuration bizarre SVN. La plupart des dépôts SVN n'ont pas d'éléments «externes», vous ne voyez donc pas cette sortie.



0
votes

Comme pour que je sache, il n'y a pas de chemin direct (uniquement avec des arguments SVN) de faire ce que vous voulez. Cependant, vous pouvez compter sur la sortie de SVN STAT -V -V , et sur ce chemin commence à partir de 41 position. Pour des immidies uniquement, le Perl suivant One-Liner effectue la tâche: xxx

pour le statut récursif vient de supprimer -n de SVN Arguments.

En plus d'imprimer tout le contenu de tous les contenus de Le DirectoTy vous souhaiterez peut-être séparer des fichiers modifiés, des fichiers non sous SVN, par révision, etc. Dans ce cas, vous pouvez facilement modifier mon script ci-dessus à l'aide du substrateur (0,1) - premier caractère de chacun sortir. Par exemple, l'une-doublure suivante produira la liste des fichiers modifiés uniquement: xxx


1 commentaires

Malheureusement, cela ne fonctionne pas. SVN STAT -V -CLCR 3011 obtient toujours une sortie supplémentaire, comme "Statut d'exécution sur l'élément externe à" FOO "" et "--- Changelist '3510':". De plus, à partir de la colonne 28, il existe parfois une adresse électronique (pas sûr de ce que cela signifie); Si c'est suffisamment long, il pousse le nom de fichier au-dessus de la colonne 41 du passé. Désolé.



4
votes

Ceci fera:

 file1
 file2


0 commentaires

2
votes

Utilisez --ignore-externals and --Cl!

Vous n'avez pas besoin d'utiliser des outils externes tels que grep ou awk . Ceci est en fait assez simple!

la commande - Ignorer-externals supprime tous les indémodes supplémentaires du statut SVN appel, et vous pouvez facilement fusionner qu'avec un paramètre - cl aussi: xxx

qui ignorera toutes les externes, puis vous donnera simplement les fichiers de la Changeelist que vous demandez.


0 commentaires

0
votes

svn journal -r -v


0 commentaires