Puedo usar este comando locate --regex '/.git$' | grep username
para ubicar todos los repositorios de git en mi sistema, pero debido a que .svn
aparece en subdirectorios de repositorios el comando locate --regex '/.svn$' | grep username
trabajo también.
El primero produjo unos 120 y el segundo más de 14.000.
¿Qué nombre de archivo o directorio debo buscar para ubicar repositorios subversores?
Respuesta aceptada:
En Git, cada copia de trabajo es su propio repositorio. Este no es el caso de SVN. Entonces, si realmente desea encontrar repositorios y están en la ubicación predeterminada y en la máquina local, esto es suficiente:
ls /var/svn
Suponiendo que realmente desea encontrar copias de trabajo , SVN desde la versión 1.7 solo coloca .svn
archivos en el nivel superior de una copia de trabajo, por lo que el comando
find / -type d -name '.svn'
funcionaría bien. Alternativamente, si ha usado SVN anterior y tiene estos directorios llenos de basura, puede intentar:
find / -type d -name '.svn' -exec dirname {} \; \
| sort \
| awk 'NR == 1 || $0 !~ "^"LAST { LAST = $0; print}'
Esto enumera todos los directorios que contienen .svn
subdirectorios, luego imprime solo aquellos que no contienen otro como prefijo.
Encontré una computadora que contiene locate
, donde
$ 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.
En este sistema, un enfoque similar al find
final ejemplo:
locate -r '/\.svn$' \
| sed 's/^\(.*\)$/"\1"/' \
| xargs dirname \
| sort \
| awk 'NR == 1 || $0 !~ "^"LAST { LAST = $0; print }'