Je peux utiliser cette commande locate --regex '/.git$' | grep username
pour localiser tous les dépôts git sur mon système, mais parce que le .svn
apparaît dans les sous-répertoires des dépôts la commande locate --regex '/.svn$' | grep username
fonctionne aussi.
Le premier en a produit environ 120 et le second plus de 14 000.
Quel nom de fichier ou de répertoire dois-je rechercher pour localiser les référentiels subverson ?
Réponse acceptée :
Dans Git, chaque copie de travail est son propre référentiel. Ce n'est pas le cas pour SVN. Donc, si vous voulez réellement trouver des dépôts , et qu'ils se trouvent à l'emplacement par défaut et sur la machine locale, cela suffit :
ls /var/svn
En supposant que vous vouliez réellement trouver des copies de travail , SVN depuis la version 1.7 ne place que .svn
fichiers au niveau supérieur d'une copie de travail, donc la commande
find / -type d -name '.svn'
fonctionnerait très bien. Alternativement, si vous avez utilisé un SVN antérieur et que ces répertoires sont éparpillés partout, vous pouvez essayer :
find / -type d -name '.svn' -exec dirname {} \; \
| sort \
| awk 'NR == 1 || $0 !~ "^"LAST { LAST = $0; print}'
Ceci liste tous les répertoires contenant .svn
sous-répertoires, puis imprime uniquement ceux qui n'en contiennent pas d'autre comme préfixe.
J'ai trouvé un ordinateur contenant locate
, où
$ locate --version
mlocate 0.26
Copyright (C) 2007 Red Hat, Inc. All rights reserved.
This software is distributed under the GPL v.2.
This program is provided with NO WARRANTY, to the extent permitted by law.
Sur ce système, une approche similaire à la dernière find
exemple :
locate -r '/\.svn$' \
| sed 's/^\(.*\)$/"\1"/' \
| xargs dirname \
| sort \
| awk 'NR == 1 || $0 !~ "^"LAST { LAST = $0; print }'