trabajo - svn tutorial español
Búsqueda de repositorio SVN (14)
- Crea el espejo
git-svn
de ese repositorio. - Busque secuencias agregadas o eliminadas dentro de git:
git log -S''my line of code''
o lo mismo engitk
La ventaja es que puede realizar muchas búsquedas de forma local, sin cargar el servidor y la conexión de red.
¿Hay algún buen software que me permita buscar en mi repositorio SVN fragmentos de código? Encontré ''Ojo de pez'' pero el costo es de 1.200 y está muy por debajo de mi presupuesto.
// Editar: La herramienta ya fue mencionada en otra respuesta, así que dale todos los créditos a Kuryaki.
Acabo de encontrar http://www.supose.org/wiki/supose que es una herramienta de línea de comandos basada en Java que escanea un repositorio para crear un índice y luego puede responder a ciertos tipos de consultas. Todavía estamos evaluando la herramienta, pero parece prometedor. Vale la pena mencionar que hace un índice completo de todas las revisiones, incluidos los archivos de código fuente y los formatos de oficina comunes.
A partir de Subversion 1.8, puede usar la opción --search
con svn log
comando svn log
. Tenga en cuenta que el comando no realiza búsquedas de texto completo dentro de un repositorio, solo considera los siguientes datos:
- autor de la revisión (
svn:author
propiedad no versionada delsvn:author
), - fecha (
svn:date
propiedad no versionada), - texto de mensaje de registro (
svn:log
propiedad no versionada desvn:log
), - lista de rutas modificadas (es decir, rutas afectadas por la revisión en particular).
Aquí está la página de ayuda sobre estas nuevas opciones de búsqueda:
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.
Dolorosamente lenta (y crudamente implementada) pero una combinación de svn log y svn cat funciona si está buscando el historial de archivos individuales o pequeños repositorios:
svn log filetosearch |
grep ''^r'' |
cut -f1 -d'' '' |
xargs -i bash -c "echo ''{}''; svn cat filetosearch -''{}''"
dará salida a cada número de revisión donde el archivo cambió y el archivo. Siempre puedes incluir cada revisión en un archivo diferente y luego grep para los cambios.
PD. ¡Votos masivos a cualquier persona que me muestre cómo hacer esto correctamente!
Empecé a usar esta herramienta
http://www.supose.org/wiki/supose
Funciona bien simplemente careciendo de una interfaz de usuario visual, pero es rápido y algo mantenido
Este ejemplo canaliza el contenido completo del repositorio a un archivo, que luego puede buscar rápidamente nombres de archivo dentro de un editor:
svn list -R svn://svn > filelist.txt
Esto es útil si el repositorio es relativamente estático y desea realizar búsquedas rápidas sin tener que cargar todo repetidamente desde el servidor SVN.
Hay sourceforge.net/projects/svn-search .
También hay una aplicación de Windows directamente desde la casa SVN llamada SvnQuery disponible en http://svnquery.tigris.org
Me gusta TRAC: este complemento podría ser útil para su tarea: http://trac-hacks.org/wiki/RepoSearchPlugin
Muchos repositorios SVN son sitios HTTP "simplemente", por lo que puede considerar buscar en una aplicación de búsqueda "rastreador web" que pueda apuntar a la raíz SVN y le proporcionará una funcionalidad básica. Actualizarlo probablemente sea un truco, tal vez algún cheque SVN en hackeo puede hacer cosquillas en el índice para descartar o reindexar los cambios sobre la marcha.
Solo pensando en voz alta.
Si estás realmente desesperado, haz un volcado del repositorio (mira "svnadmin dump") y luego grep a través de él. No es bonito, pero puede mirar alrededor de los resultados de la búsqueda para encontrar los metadatos que indican el archivo y la revisión, luego verifíquelos para verlos mejor.
No es una buena solución, sin duda, pero es gratis :) SVN no proporciona ninguna función para buscar registros pasados (o incluso archivos de registro pasados, AFAIK).
Si solo busca el nombre del archivo, use:
svn list -R file:///subversion/repository | grep filename
Windows:
svn list -R file:///subversion/repository | findstr filename
De lo contrario, finalice la búsqueda y realice la búsqueda en el sistema de archivos:
egrep -r _code_ .
Solo una nota, FishEye (y muchos otros productos de Atlassian) tienen una edición inicial de $ 10, que en el caso de FishEye te ofrece 5 repositorios y acceso para hasta 10 committers. El dinero va a la caridad en este caso.
hay krugle y koders, pero ambos son caros. Ambos tienen complementos ide para eclipse.