Как я могу просмотреть все журналы svn, которые я сделал в определенную дату?
Я искал в Интернете для этого, но не смог найти решение.
Как я могу просмотреть все журналы svn, которые я сделал в определенную дату?
Я искал в Интернете для этого, но не смог найти решение.
Чтобы отобразить записи для имени пользователя на 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
- печатать все, начиная с этого имени пользователя (регулярное выражение, соответствующее интересующему вас пользователю), в заголовок закрытия (это повторяется)Предполагая, что вы находитесь в системе 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 только один пользователь (я), похоже, что он работал, когда это действительно не так. )
svn log --verbose --search user_name --revision {YYYY-MM-DD}:{YYYY-MM-DD}
Работает на любой платформе
Если вы используете linux, лучшим решением для получения всех журналов даты является следующее:
svn log -r {start date}:{end date} -v | sed -n ‘/username/,/—–$/ p’
Если вы хотите получить журналы SVN на основе имени пользователя и между заданным диапазоном дат, вам нужно использовать svn log -r {startDate}:{endDate}
, который передается с помощью команды sed
для имени пользователя.