Получить журнал svn для активности пользователя на определенную дату

Как я могу просмотреть все журналы svn, которые я сделал в определенную дату?

Я искал в Интернете для этого, но не смог найти решение.

Ответ 1

Чтобы отобразить записи для имени пользователя на 10-м:

svn log -r '{2010-12-10}:{2010-12-11}'|sed -n '1p; 2,/^-/d; /username/,/^-/p'

Команда SVN получает фиксации в этом диапазоне дат

Разбивка команды sed:

  • -n - Не печатайте автоматически.
  • 1p - Распечатайте первую строку (заголовок ---).
  • 2,/^-/d; - Удалите все, начиная с второго и заканчивая заголовком. Это удаляет первую запись, которая IIRC является последней фиксацией с полуночи в начале дня (т.е. Она фактически не находится в диапазоне и может быть длинной в прошлом).
  • /username/,/^-/p - печатать все, начиная с этого имени пользователя (регулярное выражение, соответствующее интересующему вас пользователю), в заголовок закрытия (это повторяется)

Ответ 2

Предполагая, что вы находитесь в системе Linux, вы можете сделать что-то вроде этого:

svn log -r {YYYY-MM-DD}:{YYYY-MM-DD} | grep username | cut -d " " -f 1 | tail -n +2 | while read revision; do svn log -r $revision; done

Что это такое, это запустить svn log для получения всех журналов в течение определенного дня, а затем разрезать вывод так, чтобы он был просто списком номеров ревизий. [Edit: Добавлено tail -n +2, чтобы отключить первую ревизию, как упоминает @Matthew, первая строка будет последней версией до {that_day}]. Затем цикл while выполняет итерацию по каждой строке номеров ревизий, передавая ее в svn log.

Кроме того, помните, что {YYYY-MM-DD} относятся к полуночи в начале этого дня, поэтому для запуска всего дня вы должны запустить его для {that_day}:{the_following_day}.

Надеюсь, что это поможет!

(Кроме того, извините за недоразумение ранее о --username. Я никогда не использовал его раньше, и потому что у моего локального svn только один пользователь (я), похоже, что он работал, когда это действительно не так. )

Ответ 3

svn log --verbose --search user_name --revision {YYYY-MM-DD}:{YYYY-MM-DD}

Работает на любой платформе

Ответ 4

Если вы используете linux, лучшим решением для получения всех журналов даты является следующее:

svn log -r {start date}:{end date} -v | sed -n ‘/username/,/—–$/ p’

Если вы хотите получить журналы SVN на основе имени пользователя и между заданным диапазоном дат, вам нужно использовать svn log -r {startDate}:{endDate}, который передается с помощью команды sed для имени пользователя.