Подтвердить что ты не робот

Виновность Perforce

Есть ли эквивалент svn-вины для Perforce в командной строке? p4 annotate не отображает имена пользователей - только номера наборов изменений (без истории предков!).

В настоящее время мне приходится отслеживать код обратно через предков и сравнивать с файловым архивом, а просто должен быть более простой способ - возможно, утилита F/OSS?

4b9b3361

Ответ 1

Попробуйте взглянуть на несколько инструментов, которые, как я думаю, могут помочь вам в наибольшей степени:

1) p4pr Perl script Боб Сайдботам и Джонатан Каменс.

2) Интерфейс Emacs Perforce имеет команду 'p4-print-with-rev-history' (привязан к` Cx p V '),

Ответ 2

Я не слишком знаком с командой вины, но я предполагаю, что вы ищете, кто изменяет определенную строку кода. Самый простой способ - использовать Perparce 'time lapse view', доступный как из p4win, так и p4v.

Этот инструмент использует аннотацию и некоторые другие команды, чтобы дать вам представление о кодовой строке с течением времени. Вы можете увидеть, кто изменил какой код, когда он был вставлен или удален из кодовой линии, и т.д.

Это не командная строка. Я коротко проверил в справке, и, похоже, не существует способа запустить просмотр с временным просмотром непосредственно из вызова p4win или p4v. Может быть, хотя... Я буду проверять далее...

Изменить: я проверил с поддержкой, и вы можете запустить просмотр по времени с помощью p4v следующим образом:

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

НТН.

Ответ 3

Я использую небольшой script для обвинения

#!/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'

вы можете подключить его к некоторым редакторам, которые передадут имя файла и строку.

Здесь немного более сложная версия здесь.

Ответ 4

От клиента p4v вы можете получить контекстное меню "Time-lapse View" во всем представлении, отображающем такой файл, как Files, Changelist и т.д.

В представлении с временным просмотром имеется немало вариантов, таких как Single Revision, Multiple Revision, для анализа того, что было изменено, когда и кем.

Ответ 5

@alanw123: p4pr близок к тому, что я ищу, но он не пересекает границы ветвей:

last if $type eq 'branch';

Это была основная проблема, с которой я столкнулся, когда пытался написать свою собственную утилиту - вы не можете (легко) рассказать, как строки вернутся к файлу, который был разветвлен.

Ответ 6

Команда p4 annotate фактически может следовать за объединениями/объединениями и ветвлением в командной строке с командами -I и -I (но она не может выполнять оба сразу:():

-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.