2008-09-25 8 views
60

En ocasiones, me gustaría buscar el texto de las descripciones de listas de cambios en Perforce. No parece haber una manera de hacer esto en P4V. Puedo hacerlo redirigiendo la salida del comando a un archivo de cambios ...¿Cómo buscar el texto de las descripciones de listas de cambios en Perforce?

p4 changes -l > p4changes.txt 

... (el interruptor -l dice que para volcar el texto completo de las descripciones de listas de cambios) y luego buscar el archivo , pero esto es bastante engorroso. ¿Alguien ha encontrado una mejor manera?

+0

La solución real sería que p4d tuviera un índice de texto completo sobre las descripciones de la lista de cambios (y los propios archivos de origen ...). Algo raro que todavía no se haya incluido en el producto. – Jonesome

Respuesta

55

Cuando el panel de lista de cambios presentado tiene foco, un CTRL + F le permite realizar una búsqueda de texto arbitraria, que incluye descripciones de lista de cambios.

La única limitación es que solo busca aquellas listas de cambios que se han extraído del servidor, por lo que es posible que deba aumentar el número recuperado. Esto se hace a través de la configuración "Número de listas de cambio, trabajos, asignaciones de ramas o etiquetas para buscar a la vez" que se puede encontrar navegando a Edición-> Preferencias-> Datos del servidor.

+0

Agradable. Probé esto y salta para seleccionar cada lista de cambios correspondiente. Muy útil. – Epu

+0

Esto realmente me ayudó. ¡Muchas gracias! –

+1

Ojalá pudiera volver a votar nuevamente. Olvidé y volví a encontrar esta respuesta hoy, pero vi que ya la había votado. – CoderDennis

17

Uso p4sql y ejecuto una consulta en la base de datos "changes". Aquí está la perforce database schema

La consulta ve algo como esto (no probado)

select change from changes where description like '%text%' and p4options = 'longdesc' 

edición: añadido los p4options a devolver más de 31 caracteres en la descripción.

+0

Eso no funcionó. Por alguna razón, "me gusta" se comporta como "=". Supongamos que la descripción es "foo bar". como 'foo' falla, pero como 'foo bar' tiene éxito. Más importante aún, no hacen que el texto completo de la descripción esté disponible, solo los primeros 30 caracteres. – raven

+0

@raven - El% de caracteres son importantes para el SQL, y podrían hacer que la consulta funcione. Tampoco creo que tengas razón en la descripción, deberías poder acceder a todo. ¿Puedes publicar tu consulta? –

+0

@Greg Whitfield: Tienes razón, no estaba usando el% de caracteres. Las consultas están funcionando, pero no son de mucha utilidad. Verifiqué que solo está consultando y mostrando los primeros 31 caracteres de la descripción. – raven

1

El uso de p4sql es realmente la única forma de hacer lo que realmente desea. No estoy enterado de ninguna otra manera. El beneficio, por supuesto, es que puede usar las declaraciones de selección para limitar el rango de los valores de la lista de cambios (a través de la fecha, el usuario, etc.). Su método funcionará, pero se volverá engorroso muy rápidamente a medida que genere más listas de cambios. Puede limitar el alcance del comando de cambios, pero no obtendrá la flexibilidad de p4sql.

0

Si todavía ama a su línea de comandos, puede escribir un pequeño script en Perl que:

  • cambia el separador de registros $/a doble salto de línea "\ n \ n", por lo que se filtra la entrada en registros completos de ztagged p4 output.
  • escanea la parte '/^... desc /..//' con expresiones regulares de los archivos args.

uso sería algo así como 'p4 -ztag changes -l | yourperlfilter.pl searchterm1 searchterm2 '

si funcionó bien, podría integrate it into the p4win tools menu.

1

Eddie en Juegos publicó su Lista de cambios Perforce Buscar en 0,1 http://www.eddiescholtz.com/blog/archives/130

Pero, me gusta usar mi editor de texto favorito con el simple: p4 cambios -s presentarse // PROG/stuff/main/... > temp.txt

+0

Versión 0.2 es también. El código está alojado en el código de google: http://code.google.com/p/p4search/ – idbrii

17

p4 changes -L | grep -B 3 searchstring

-B 3 medios muestran 3 líneas antes de la cadena coincidente, debería ser suficiente para mostrar el identificador de cambio con 2 líneas de comentario, pero se puede cambiar según sea necesario.

6

Aquí hay una versión Powershell de la respuesta "grep" de Paul. Una vez más, busca la cadena especificada en la descripción del cambio y devuelve las 3 líneas antes de que, para incluir el cambio Identificación:

p4 changes -L | select-string "search string" -Context (3,0) 
3

Por qué vuelven a dirigir a un archivo cuando se puede canalizar la salida a través less y utilizar less ' s búsqueda?

p4 changes -l | less 

y luego presione / para que solicite una cadena de búsqueda. Después, n saltará a la siguiente coincidencia, y Shift + n saltará a la anterior.

Una implementación de less para Windows está disponible como parte de UnxUtils.

+0

Esta es probablemente la opción más fácil de usar siempre que ya tenga menos. Ya lo tenía instalado con msys2, así que fue fácil de instalar. – leetNightshade

Cuestiones relacionadas