Trouver l'auteur d'une ligne de code dans Mercurial

114

Comment savoir qui est responsable d'une ligne de code spécifique? Je connais le numéro de lin et le nom du fichier mais j'aimerais que Mercurial me dise le (s) auteur (s) de cette ligne de code spécifique. Y a-t-il une commande pour cela?

Daniel O
la source

Réponses:

123

Sur la ligne de commande, vous voudriez utiliser hg annotate -u( -upeut être combiné avec -npour obtenir le numéro de révision local, ce qui pourrait être utile). Vérifiez hg help annoplus d'options.

djc
la source
1
Je pense que cela vient de SVN.
Warren P
2
CVS l'a appelé annotate. Dans SVN, le principal pour la commande est blame, bien que annotateet praisesoient disponibles sous forme d'alias.
djc
6
Pour clarifier: cela montre qui a été le dernier à modifier la ligne, pas nécessairement qui l'a créée à l'origine.
DanMan
35

J'étais fan de "svn blame", alors j'ai ajouté à mon ~/.hgrc:

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

donc je peux simplement taper "hg blame";-)

Christophe Muller
la source
9
BTW hg blame est une commande par défaut, pour autant que je sache. Je ne sais pas si c'est récent, mais c'est là. J'ai attiré mon attention pendant que je regardais le fichier d'aide pour annoter, qui montrait des alias "blame";)
Tovi7
4
Tovi7: Je l'ai ajouté en février 2008, donc c'était le premier dans la version 1.0. hg.intevation.org/mercurial/crew/rev/07f2236c4dee
djc
16

Si vous utilisez TortoiseHG

hgtk annotate <filename>

Ou en trouvant le fichier dans le journal, en faisant un clic droit dessus et en sélectionnant "Annoter le fichier"

artemb
la source
5
C'est thg annotate <filename>maintenant
Randy Syring
2
"Annoter le fichier" est un bouton avec un signe #.
Steve Pitchers
9

J'ai cherché cela pendant des siècles dans Tortoise Workbench; merci à @artemb et @Steve Pitchers pour m'avoir pointé dans la bonne direction. Il m'a encore fallu un certain temps pour le repérer.

entrez la description de l'image ici

perlyking
la source
1
Pour accéder à cette vue sur la gauche montrant les fichiers du référentiel individuels, appuyez sur le petit bouton qui apparaît dans le coin supérieur gauche, à droite où se trouvent habituellement vos fichiers modifiés. Passez ensuite la souris sur les chiffres de chaque ligne et regardez en bas pour voir l'auteur dans la barre d'état.
Noumenon
4

sur la ligne de commande, vous pouvez utiliser 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
la source