Pregunta

¿Existe un equivalente de la culpa de svn por Perforce en la línea de comando? p4 annotate no muestra nombres de usuario, solo números de conjuntos de cambios (¡sin historial de antepasados!).

Actualmente tengo que rastrear el código a través de mis antepasados ​​y compararlo con el registro de archivos, y simplemente tiene que haber una manera más fácil: ¿tal vez una utilidad F/OSS?

¿Fue útil?

Solución

Intente echar un vistazo a un par de herramientas que creo que podrían brindarle la mayor parte de lo que necesita:

1) p4pr Guión en Perl de Bob Sidebotham y Jonathan Kamens.

2) Emacs fuerza La interfaz tiene un comando 'p4-print-with-rev-history' (vinculado a 'C-x p V').

Otros consejos

No estoy muy familiarizado con el comando de culpa, pero supongo que estás buscando quién cambia una línea de código en particular.La forma más sencilla es utilizar la 'vista de lapso de tiempo' de Perforce disponible tanto en p4win como en p4v.

Esta herramienta utiliza anotar y algunos otros comandos para brindarle una vista de la línea de código a lo largo del tiempo.Puede ver quién modificó qué código, cuándo se insertó o eliminó de la línea de código, etc.

Sin embargo, no es una línea de comando.Revisé brevemente la ayuda y no parece haber una manera de iniciar la vista de lapso de tiempo directamente desde una invocación de p4win o p4v.Aunque podría haberlo... Lo comprobaré más a fondo...

Editar:Verifiqué con soporte y puedes iniciar la vista de lapso de tiempo a través de p4v de la siguiente manera:

p4v.exe -cmd "annotate //<path/to/file>"

HTH.

Utilizo un pequeño guión para culpar.

#!/bin/bash

FILE="$1"
LINE="$2"

p4 annotate -cq "${FILE}" | sed "${LINE}q;d" | cut -f1 -d: | xargs p4 describe -s | sed -e '/Affected files/,$d'

puede conectarlo a algunos de los editores que pasarán el nombre del archivo y la línea.

Hay una versión un poco más compleja. aquí.

Desde el cliente p4v, puede obtener el menú contextual "Vista de lapso de tiempo" en todas las vistas que muestran archivos como Archivos, Lista de cambios, etc.

La vista de lapso de tiempo tiene bastantes opciones como Revisión única, Revisión múltiple para analizar qué se cambió, cuándo y quién.

@alanw123:p4pr está cerca de lo que estoy buscando, pero no cruza los límites de las sucursales:

last if $type eq 'branch';

Ese fue el principal problema que tuve cuando intenté escribir mi propia utilidad: no se puede (fácilmente) saber cómo se asignan las líneas al archivo del que se bifurcó.

El p4 annotate comando en realidad poder siga fusiones/integraciones y bifurcaciones en la línea de comando con el -I y -i comandos (pero no puede hacer ambos a la vez :( ):

-I
Follow integrations into the file. If a line was introduced into the file by a merge, the source of the merge is indicated as the changelist that introduced the line. If that source was itself the result of an integration, that source will be used instead, and so on.
The use of the -I option implies the -c option. The -I option cannot be combined with -i.
-i
Follow file history across branches. If a file was created by branching, Perforce includes revisions up to the branch point.
The use of the -i option implies the -c option. The -i option cannot be combined with -I.
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top