svn version-control perforce

svn - Culpar Perforce



version-control (6)

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

last if $type eq ''branch'';

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

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

Actualmente tengo que rastrear el código a través de 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?


Desde el cliente p4v, puede obtener el menú contextual "Ver Time-lapse View" en toda la vista que muestre archivos como Files, Changelist, 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 por quién.


El comando p4 annotate realidad puede seguir fusiones / integraciones y ramificarse en la línea de comandos con los comandos -I y -i (pero no puede hacer ambas cosas 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.


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

1) p4pr Perl de Bob Sidebotham y Jonathan Kamens.

2) La interfaz de Emacs Perforce tiene un comando ''p4-print-with-rev-history'' (vinculado a `Cx p V '').


No estoy demasiado familiarizado con el comando de culpa, pero supongo que estás buscando quién cambia una determinada línea de código. La manera más fácil es usar la "vista de lapso de tiempo" de Perforce disponible tanto desde p4win como desde p4v.

Esta herramienta usa anotar y algunos otros comandos para darle una vista de la línea de código a lo largo del tiempo. Puede ver quién modificó qué código, cuándo fue insertado o eliminado de la línea de código, etc.

Aunque no es 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 p4win o p4v. Sin embargo, puede haber ... Voy a consultar más ...

Editar: he comprobado con soporte, y puede iniciar la vista de lapso de tiempo a través de p4v de la siguiente manera:

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

HTH.


Uso un pequeño script 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 y la línea del archivo.

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