Pergunta

Existe um equivalente à culpa do svn pelo Perforce na linha de comando? p4 annotate não exibe nomes de usuários - apenas números de conjuntos de alterações (sem histórico de ancestrais!).

Atualmente, preciso rastrear o código através dos ancestrais e compará-lo com o log de arquivos, e só precisa haver uma maneira mais fácil - talvez um utilitário F/OSS?

Foi útil?

Solução

Tente dar uma olhada em algumas ferramentas que acho que podem fornecer a você mais do que você precisa:

1) p4pr Roteiro Perl de Bob Sidebotham e Jonathan Kamens.

2) Emacs forçosamente interface possui um comando 'p4-print-with-rev-history' (vinculado a `C-x p V').

Outras dicas

Não estou muito familiarizado com o comando culpa, mas presumo que você esteja procurando quem altera uma linha específica de código.A maneira mais fácil é usar a 'visualização de lapso de tempo' do Perforce, disponível no p4win e no p4v.

Esta ferramenta usa anotação e alguns outros comandos para fornecer uma visão da linha de código ao longo do tempo.Você pode ver quem modificou qual código, quando ele foi inserido ou removido da linha de código, etc.

Porém, não é linha de comando.Verifiquei brevemente a ajuda e não parece haver uma maneira de iniciar a visualização de lapso de tempo diretamente de uma invocação p4win ou p4v.Pode haver, porém ... estarei verificando mais detalhadamente ...

Editar:Verifiquei com o suporte e você pode iniciar a visualização do timelapse através do p4v da seguinte maneira:

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

HTH.

Eu uso um pequeno 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'

você pode conectá-lo a alguns dos editores que passarão o nome e a linha do arquivo.

Existe uma versão um pouco mais complexa aqui.

No cliente p4v, você pode obter o menu de contexto "Visualização de lapso de tempo" em todas as visualizações exibindo arquivos como Arquivos, Lista de alterações etc.

A visualização de lapso de tempo tem algumas opções como Revisão Única, Revisão Múltipla para analisar o que foi alterado, quando e por quem.

@alanw123:p4pr está próximo do que procuro, mas não ultrapassa os limites dos ramos:

last if $type eq 'branch';

Esse foi o principal problema que tive quando tentei escrever meu próprio utilitário - você não pode (facilmente) dizer como as linhas são mapeadas de volta para o arquivo do qual foi ramificado.

O p4 annotate comando na verdade pode siga fusões/integrações e ramificações na linha de comando com o -I e -i comandos (mas não pode fazer os dois ao mesmo tempo :( ):

-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 em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top