Список всех файлов, измененных конкретным пользователем в Subversion - PullRequest
64 голосов
/ 04 декабря 2008

Можно ли получить список всех файлов, которые были изменены / добавлены / удалены конкретным пользователем?

Цель состоит в том, чтобы получить представление о том, что пользователь сделал за день (или диапазон дат).

Ответы [ 10 ]

49 голосов
/ 04 декабря 2008

Вот пример использования команды svn log и команда linux sed с вашим именем пользователя blankman:

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

Если вы хотите получать эту информацию с помощью постоянных отчетов, использование проекта, подобного StatSVN , о котором упоминал Патрик, очень полезно. Если вы используете Maven , существует плагин StatSCM , который будет генерировать эту информацию на сайте вашего проекта.

16 голосов
/ 05 декабря 2013

Нет необходимости беспокоиться о grep, sed и т. Д., Начиная с Subversion 1.8. В выпуске появилась опция --search, которую можно использовать с командой svn log !

Опции позволяют вам искать в истории вашего хранилища:

  • автор ревизии (svn:author неверсионное свойство),
  • дата (svn:date неверсионная собственность),
  • текст сообщения журнала (svn:log неверсионное свойство),
  • и пути, затронутые конкретной ревизией.

См. SVNBook 1.8 | svn log ссылка на командную строку .

7 голосов
/ 16 августа 2011

Ответ Шека помог мне с тем, что мне нужно было сделать, но я обнаружил, что получил более точные результаты со следующей настройкой:

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

В противном случае список включает коммиты, сделанные другими, которые просто ссылаются на меня по имени.

5 голосов
/ 20 августа 2012

Почему бы просто не использовать черепаху SVN?

Totoise SVN -> Показать журнал Добавьте идентификатор пользователя в левом верхнем углу, для которого вы хотели бы видеть список изменений

4 голосов
/ 30 мая 2013

Это работает для меня:

svn log  | grep YOUR_USERNAME_HERE | awk '{print $1}' | sed s/r//g | xargs -I $ svn diff --summarize -c $ | sort | uniq
3 голосов
/ 18 февраля 2011

Вот версия диапазона дат

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

3 голосов
/ 04 декабря 2008

Да. Мы используем StatSVN для наших отчетов о подрывной деятельности, и один из отчетов, которые он делает, фиксирует разработчик.

TortiseSVN также позволяет просматривать сообщения журнала по дате для авторов.

2 голосов
/ 20 августа 2012

Я нашел эту полезную команду, чтобы найти список измененных файлов заданным пользователем:

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

И ссылка на оригинальную статью .

0 голосов
/ 02 сентября 2015

Чтобы увидеть список всех файлов, измененных конкретным пользователем в subversion для конкретной структуры каталогов, сначала вам нужно перейти в эту структуру каталогов и в правой части панели каталогов щелкнуть правой кнопкой мыши .. затем, перейдите к Показать журнал -> в верхнем левом углу, мы получаем параметр фильтра.

впредь, указав имя пользователя, вы увидите все файлы, измененные этим конкретным пользователем, в нижней панели.

0 голосов
/ 14 декабря 2010

Вот небольшой скрипт, который показывает, какие файлы были изменены определенным пользователем между ревизиями.

#!/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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...