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).
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.
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:
svn:author
non versionnée),svn:date
propriété non versionnée),svn:log
propriété non versionnée),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.
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.
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
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'
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.
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 .
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