web-dev-qa-db-fra.com

Liste tous les fichiers modifiés par un utilisateur particulier dans Subversion

Est-il possible d'obtenir une liste de tous les fichiers modifiés/ajoutés/supprimés par un utilisateur particulier?

Le but est d’avoir une idée de ce que l’utilisateur a fait pour la journée (ou pour la plage de dates).

63
Blankman

Voici un exemple, en utilisant la commande svn log et la commande linux sed , avec votre nom d'utilisateur, 'blankman':

svn log | sed -n '/blankman/,/-----$/ p'

Si vous souhaitez obtenir ces informations avec des rapports continus, il est très utile d’utiliser un projet tel que StatSVN , mentionné par Patrick. Si vous utilisez Maven , il existe un plugin StatSCM qui générera ces informations sur le site de votre projet.

49
shek

Il n'est pas nécessaire de se préoccuper de grep, sed, etc. à partir de Subversion 1.8. La version introduite de l'option --search que vous pouvez utiliser avec la commande svn log !

Les options vous permettent de rechercher dans l’historique de votre référentiel:

  • auteur de la révision (propriété svn:author non versionnée),
  • date (svn:date propriété non versionnée),
  • consigner le texte du message (svn:log propriété non versionnée),
  • et chemins affectés par la révision particulière.

Voir SVNBook 1.8 | svn log référence de ligne de commande .

16
bahrep

La réponse de Shek m'a aidé avec ce que je devais faire, mais j'ai trouvé que j'avais des résultats plus précis avec le Tweak suivant:

svn log | sed -n '/ | blankman | /,/-----$/ p'

Sinon, la liste inclut les commits faits par d’autres qui me réfèrent simplement par mon nom.

7
user890155

Pourquoi ne pas simplement utiliser la tortue SVN?

Tortoisesvn -> Show Log Ajoutez en haut à gauche l'ID utilisateur pour lequel vous souhaitez voir la liste des modifications.

5
vsingh

Cela fonctionne pour moi:

svn log  | grep YOUR_USERNAME_HERE | awk '{print $1}' | sed s/r//g | xargs -I $ svn diff --summarize -c $ | sort | uniq
4
Brad Parks

Voici la version de la plage de dates

svn log -v -r {"2011-01-01 00:00:00"}: {"2011-02-18 00:00:00"} | sed -n '/ russenreaktor /,/----- $/p'

3
printminion

Oui. Nous utilisons StatSVN pour nos rapports Subversion, et l’un des rapports qu’il génère est la validation par développeur.

TortiseSVN vous permet également de consulter les messages du journal par date pour les auteurs.

3
Patrick Cuff

J'ai trouvé cette commande utile pour trouver une liste de fichiers modifiés par un utilisateur donné:

svn log -v -r{2012-08-01}:HEAD 
| awk '/^r[0-9]+ / {user=$3} /./ {if (user=="username") {print}}'
| grep -E "^   M|^   G|^   A|^   D|^   C|^   U" 
| awk '{print $2}'
| sort | uniq

Et le lien vers l'article original .

1
Tadej Mali

Voici un petit script pour montrer quels fichiers ont été modifiés par un utilisateur donné entre les révisions.

#!/bin/bash
# @param $1: Start revision
# @param $2: End revision
# @param $3: User
#
# Example: svn_scapegoat.sh 1000:HEAD jdoe

svn_changed()
{
    svn blame --revision $1:$2 -- $4 | grep -E "^ [0-9]* *${3} "
}

svn diff --revision $1:$2 --summarize | \
cut -c9- | \
while read path
do
    if [ -n "$(svn_changed $1 $2 $3 $path)" ]
    then
        echo "$3 changed $path"
    else
        echo "Someone else changed $path"
    fi
done
0
l0b0