Encontrando o autor de uma linha de código no Mercurial

114

Como faço para descobrir quem é responsável por uma linha específica de código? Eu sei o número do linho e o nome do arquivo, mas gostaria que o Mercurial me dissesse o (s) autor (es) dessa linha de código específica. Existe um comando para isso?

Daniel O
fonte

Respostas:

123

Na linha de comando, você deseja usar hg annotate -u( -upode ser combinado com -npara obter o número de revisão local, que pode ser útil). Verifique hg help annomais opções.

djc
fonte
1
Eu acredito que se origina com SVN.
Warren P
2
CVS chamou annotate. No SVN, o principal para o comando é blame, embora annotatee praiseesteja disponível como aliases.
djc
6
Para esclarecer: isso mostra quem foi o último a editar a linha, não necessariamente quem a criou originalmente.
DanMan
35

Eu era fã de "svn blame", então adicionei ao meu ~/.hgrc:

[alias]
blame = annotate --user --number

então posso apenas digitar "hg blame";-)

Christophe Muller
fonte
9
BTW hg blame é um comando padrão, tanto quanto eu posso dizer. Não sei se é recente, mas está aí. Chamei minha atenção enquanto eu estava olhando para o arquivo de ajuda para anotar, que mostrava os pseudônimos "culpa";)
Tovi7
4
Tovi7: Eu adicionei em fevereiro de 2008, então foi o primeiro em 1.0. hg.intevation.org/mercurial/crew/rev/07f2236c4dee
djc
16

Se você estiver usando o TortoiseHG

hgtk annotate <filename>

Ou encontrando o arquivo no registro, clicando com o botão direito e selecionando "Anotar arquivo"

artemb
fonte
5
É thg annotate <filename>agora
Randy Syring
2
"Anotar arquivo" é um botão com um sinal #.
Steve Pitchers
9

Procurei por isso por muito tempo no Tortoise Workbench; obrigado a @artemb e @Steve Pitchers por me apontarem na direção certa. Ainda demorei um pouco para perceber.

insira a descrição da imagem aqui

perlyking
fonte
1
Para chegar à visualização à esquerda que mostra os arquivos individuais do repositório, pressione o pequeno botão que aparece no canto superior esquerdo, exatamente onde seus arquivos alterados normalmente estão. Em seguida, passe o mouse sobre os números de cada linha e olhe na parte inferior para ver o autor na barra de status.
Noumenon
4

na linha de comando, você pode usar hg blame ou hg annotate.

$ hg blame -u -c -l Filename

-u --user                list the author (long with -v)
-c --changeset           list the changeset
-l --line-number         show line number at the first appearance
Nayagam
fonte