Avec SVN; il vous suffit de faire un svn blame suivi du nom du fichier. Peut être par déontologie, plusieurs alias sont disponibles : praise, annotate, ann. Une mauvaise approche consiste à faire un svn log parce qu'avec cette commande, la granularité est le fichier, vous devez donc parcourir les logs et faire des diff afin de trouver qui a modifié le bout de code qui vous intéresse.

Vous pouvez consulter la doc de SVN blame pour plus d'informations.

Avec GIT, la même commande git blame permet de faire la même chose que SVN blame (git annotate aussi, bien que présente pour assurer la compatibilité) mais GIT fournit beaucoup plus d'options :

  • La possibilité de spécifier les lignes de début et de fin pour lesquelles vous voulez voir les annotations.
  • De voir les modifications de façon incrémentale.
  • De savoir les lignes copiées à partir d'autres fichiers dans le même comit (utile dans le cas de refactoring)
  • De connaitre les lignes déplacées
  • ...

Vous pouvez consulter la doc de GIT blame pour plus d'informations

La plupart des IDE permettent également de le faire. Dans le cas d'Eclipse : Clic droit=>Team=>Show annotations.