web-dev-qa-db-fra.com

comment puis-je rechercher dans un référentiel svn l'existence de fichiers dans n'importe quelle révision

Comment puis-je rechercher si un fichier nommé foo.txt a déjà été enregistré dans mon référentiel svn (dans n'importe quelle révision)?

25
Manu

Cliquez avec le bouton droit sur la racine du dossier extrait> TortoiseSVN> Afficher le journal

Vous pouvez également y saisir des noms de fichiers.

37
Martijn Laarman

Cela devrait fonctionner pour vous:

svn log -r 0:HEAD -v $REPOSITORY_PATH | grep "/foo.txt"

Cela vous donnera les chemins d'accès aux fichiers et l'état du journal. Si vous obtenez des hits, vous savez qu'il a existé à un moment donné. Si vous n'obtenez aucun résultat, rien dans le référentiel ne correspond à aucune révision. Vous verrez également les états de chaque ligne de journal, par exemple:

 A /some/path/foo.txt
 D /some/path/foo.txt

Mais je suppose que les informations supplémentaires ne sont pas un problème pour vous. :)

10
Adam Bellaire

Utilisez le client Subversion 1.8+ et nouveau --search et --search-and les options deviennent disponibles pour svn log commande . Ces options ne permettent pas d'effectuer une recherche en texte intégral dans un référentiel et ne recherchent que les données suivantes:

  • auteur de la révision (svn:author propriété non versionnée),
  • date (svn:date propriété non versionnée),
  • texte du message du journal (svn:log propriété non versionnée),
  • liste des chemins modifiés (c'est-à-dire les chemins affectés par la révision particulière).

Autant que je suppose, vous pouvez rechercher "foo.txt" avec la ligne de commande suivante:

svn log -v --search "foo.txt".

Voici la page d'aide complète sur ces nouveaux svn log Options de recherche:

 If the --search option is used, log messages are displayed only if the
 provided search pattern matches any of the author, date, log message
 text (unless --quiet is used), or, if the --verbose option is also
 provided, a changed path.
 The search pattern may include "glob syntax" wildcards:
     ?      matches any single character
     *      matches a sequence of arbitrary characters
     [abc]  matches any of the characters listed inside the brackets
 If multiple --search options are provided, a log message is shown if
 it matches any of the provided search patterns. If the --search-and
 option is used, that option's argument is combined with the pattern
 from the previous --search or --search-and option, and a log message
 is shown only if it matches the combined search pattern.
 If --limit is used in combination with --search, --limit restricts the
 number of log messages searched, rather than restricting the output
 to a particular number of matching log messages.
5
bahrep