Tenemos un repositorio masivo para el código que contiene miles de carpetas y subcarpetas, quiero buscar en este repositorio con el nombre del archivo o con alguna palabra.
Root folder
a\
b\
c\
d\
e\
f\ab\
f\ab\cd.txt
Quiero buscar cd.txt pero no sé dónde está en el repositorio de SVN, para eso quiero realizar una búsqueda en la carpeta raíz de SVN donde pondré el nombre del archivo cd.txt y ejecutaré el comando, lo registraré cada carpeta y mostrará el resultado de los detalles del archivo ...
El requisito de esperanza es claro. Puedes por favor ayudarme en esto.
Respuestas:
Si el archivo está en su copia de trabajo, entonces si está usando svn 1.5:
o una versión anterior de svn:
Si necesita encontrar el archivo en el historial (eliminado o movido):
y búscalo con:
fuente
... | select-string <filename>
como reemplazo degrep
.... | find "<filename>"
, también funcionará como reemplazo de grep. NOTA : Los "son obligatorios alrededor del nombre del archivo.svn co --depth empty REPOURL RepoDir
,cd RepoDir
ysvn list --depth infinity
luego obtener todas las rutas de archivo del servidor SVN (posiblemente produciendo millones de líneas si tiene millones).Lo siguiente funciona para mí (svn versión 1.4.6)
fuente
Con acceso al repositorio en sí, use (es decir, en su sistema de archivos de host svn)
o para buscar en todos los repositorios (si tiene varios repositorios configurados).
la opción --full-Paths dará la ruta completa en el repositorio al archivo (si se encuentra)
ejemplo:
redirigir la salida a un archivo si se necesita una copia estática.
asume el uso de nix OS.
fuente
svn list --depth infinity <your-repo-here>
para obtener una lista de archivos en el repositorio y luegosvn cat
para obtener el contenido. Puede agregar una--xml
clave allist
comando para simplificar un poco el análisis.fuente
grep
si desea ver 1 archivo, especialmente si tiene miles de archivos en el repositorio como el OP. Además, hay un--incremental
modo si necesita unir la salida con una salida XML anterior o posterior.Recientemente publiqué mi utilidad para listar el repositorio, que es mucho más rápido que el enfoque "svn ls --depth infinity". Aquí están los puntos de referencia . Simplemente llama a una función que está disponible en la API interna de Subversion, pero ahora accesible a través de una línea de comando.
Para que puedas correr
fuente
Si está utilizando TortoiseSVN, puede probar esto SI está dispuesto a buscar Proyecto por Proyecto, funciona para mí:
fuente
VisualSVN Server 4.2 admite la búsqueda de archivos por nombre en la interfaz web. Pruebe la nueva función en el servidor de demostración .
Puede descargar VisualSVN Server 4.2.0 en https://www.visualsvn.com/server/download/pre-release/ . Consulte las notas de la versión en https://www.visualsvn.com/server/download/ .
fuente
Si su repositorio remoto no es enorme, entonces un método fácil es: Puede hacer un "pago" para obtener un repositorio local. Si está en una máquina con Windows, utilice "Buscar" o la máquina Linux utilice el comando "Buscar".
fuente