Nous avons un référentiel en vrac pour le code contenant des milliers de dossiers et de sous-dossiers, je veux rechercher sous ce référentiel avec le nom de fichier ou avec un mot.
Root folder
a\
b\
c\
d\
e\
f\ab\
f\ab\cd.txt
Je veux rechercher cd.txt mais je ne sais pas où il se trouve dans le référentiel SVN, pour cela je veux effectuer une recherche sur le dossier racine de SVN où je mettrai le nom de fichier cd.txt et exécuterai la commande, je m'enregistrerai chaque dossier et affichera le résultat des détails du fichier ....
L'exigence d'espoir est claire. Pouvez-vous s'il vous plaît m'aider à ce sujet.
Réponses:
Si le fichier est dans votre copie de travail, alors si vous utilisez svn 1.5:
ou une version antérieure de svn:
Si vous avez besoin de trouver le fichier dans l'historique (supprimé ou déplacé):
et recherchez-le avec:
la source
... | select-string <filename>
en remplacement degrep
.... | find "<filename>"
fonctionnera également en remplacement de grep. REMARQUE : les "sont obligatoires autour du nom de fichier.svn co --depth empty REPOURL RepoDir
,cd RepoDir
etsvn list --depth infinity
puis obtenir tous les chemins de fichiers à partir du serveur SVN (éventuellement produire des millions de lignes si vous avez des millions).Ce qui suit fonctionne pour moi (svn version 1.4.6)
la source
Avec l'accès au dépôt lui-même, utilisez (c'est-à-dire sur votre système de fichier hôte svn)
ou pour rechercher tous les dépôts (si vous avez plusieurs configurations de dépôts).
l'option --full-path donnera le chemin complet du repo vers le fichier (si trouvé)
exemple:
redirige la sortie vers un fichier si une copie statique est nécessaire.
suppose l'utilisation de nix OS.
la source
svn list --depth infinity <your-repo-here>
pour obtenir une liste des fichiers dans le référentiel, puissvn cat
pour obtenir le contenu. Vous pouvez ajouter une--xml
clé à lalist
commande pour rendre l'analyse un peu plus simple.la source
grep
si vous voulez voir 1 fichier, surtout si vous avez des milliers de fichiers dans le référentiel comme l'OP. En outre, il existe un--incremental
mode si vous devez joindre la sortie avec une sortie XML ultérieure / antérieure.Récemment, j'ai publié mon utilitaire pour lister le dépôt, c'est beaucoup plus rapide que l'approche "svn ls --depth infinity". Voici les repères . Il appelle simplement une fonction disponible dans l'API interne de Subversion, mais désormais accessible via une ligne de commande.
Alors tu peux courir
la source
Si vous utilisez TortoiseSVN, vous pouvez essayer ceci SI vous êtes prêt à regarder Projet par Projet - fonctionne pour moi:
la source
VisualSVN Server 4.2 prend en charge la recherche de fichiers par nom dans l'interface Web. Essayez la nouvelle fonctionnalité sur le serveur de démonstration .
Vous pouvez télécharger VisualSVN Server 4.2.0 à l' adresse https://www.visualsvn.com/server/download/pre-release/ . Consultez les notes de publication à l' adresse https://www.visualsvn.com/server/download/ .
la source
Si votre dépôt distant n'est pas énorme, alors une méthode simple est la suivante: vous pouvez faire une "extraction" pour obtenir un dépôt local. Si vous êtes sur une machine Windows, vous utilisez "Rechercher" ou une machine Linux utilisez la commande "Rechercher".
la source