Исполнить вину - PullRequest
       41

Исполнить вину

48 голосов
/ 11 сентября 2008

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

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

Ответы [ 6 ]

55 голосов
/ 12 сентября 2008

Я не слишком знаком с командой вины, но я предполагаю, что вы ищете, кто изменяет конкретную строку кода. Самый простой способ - использовать «промежуток времени» от Perforce, доступный как в p4win, так и в p4v.

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

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

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

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

НТН.

10 голосов
/ 12 сентября 2008

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

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

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

5 голосов
/ 15 августа 2014

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

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

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

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

3 голосов
/ 02 октября 2012

В клиенте p4v вы можете получить контекстное меню «Покадровый просмотр» для всех файлов, отображающих представление, таких как Файлы, Список изменений и т. Д.

В представлении промежуток времени есть довольно много опций, таких как «Одна редакция», «Многократная редакция» для анализа того, что было изменено, когда и кем.

1 голос
/ 18 апреля 2013

Команда 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.
1 голос
/ 12 сентября 2008

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

last if $type eq 'branch';

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

...