Как экспортировать журнал Subversion в электронную таблицу
Есть ли способ экспортировать сообщения журнала Subversion в электронную таблицу (excel, csv и т. д.) формат?
При копировании из окна Log Messages в TortoiseSVN он вставляет текст в следующем формате:
Revision: 174
Author: CARDINALHEALTHenrique.colon
Date: Wednesday, July 11, 2012 9:37:02 AM
Message: CR #58514
----
Modified : /trunk/ob_progs/utility/connect_peek
Я мог бы создать сценарий, чтобы переформатировать его в CSV, если это необходимо. Но я действительно не хочу: (
3 ответа:
Используйте следующую команду Subversion для создания xml-файла из журнала репозитория:
Svn log-v --xml > repository_log.xml
Импортируйте xml-файл в электронную таблицуExcel (не уверен, что он будет работать с LibreOffice/OpenOffice).
Затем вы можете сохранить его в виде электронной таблицы.
Вот и все!
Поскольку вы используете TortoiseSVN и, следовательно, находитесь в Windows, простой способ сделать это-с помощью PowerShell. Начните с этой функции, чтобы преобразовать данные журнала svn в объекты PowerShell:
Function Get-SvnLogData() { ([xml](svn log -v --xml)).log.logentry | % { $nestedEntry = $_ $_.paths.path | % { $path = $_ $nestedEntry | Select-Object -Property ` Author, ` @{n='Revision'; e={([int]$_.Revision)}}, ` @{n='Date'; e={Get-Date $_.Date }}, ` @{n='Action'; e={$path.action }}, ` @{n='Path'; e={$path.InnerText }}` } } }
По умолчанию выводится список, например:
author : smith Revision : 29091 Date : 6/26/2012 7:30:44 AM Action : M Path : /Utility/trunk/Distribution/file1.txt author : jones Revision : 28987 Date : 6/21/2012 3:56:51 PM Action : M Path : /Utility/trunk/Distribution/file2.txt author : msorens Revision : 28934 Date : 6/21/2012 8:22:17 AM Action : M Path : /Utility/trunk/Distribution/file3.txt author : jones Revision : 28835 Date : 6/19/2012 8:56:08 AM Action : A Path : /Utility/trunk/DAL/stuff.txt . . .
С помощью этой команды, однако...
Get-SvnLogData | Format-Table -AutoSize
...вы можете попросить PowerShell предоставить вам таблицу вместо списка, например:
author Revision Date Action Path ------ -------- ---- ------ ---- smith 29091 6/26/2012 7:30:44 AM M /Utility/trunk/Distribution/file1.txt jones 28987 6/21/2012 3:56:51 PM M /Utility/trunk/Distribution/file2.txt msorens 28934 6/21/2012 8:22:17 AM M /Utility/trunk/Distribution/file3.txt jones 28835 6/19/2012 8:56:08 AM A /Utility/trunk/DAL/stuff.txt . . .
И фактически ответить на ваш вопрос :-) вы можете так же легко преобразовать вывод в CSV и отправить его в файл с командой, как это:
Двойной щелчок по результирующему файлу открывает его в Excel:Get-SvnLogData | Export-Csv -Path temp.csv
Крис Уэст предложил довольно простое и в то же время эффективное решение.:
На этой странице он перечислил два решения. Первый-это программа Java, которая будет выводить CSV. Вторая-это страница JSBin, которая преобразует вставленный журнал SVN в CSV.http://gotochriswest.com/blog/2012/10/02/svn-log-to-csv-converter/На самом деле страница кажется переместилась сюда: http://cwestblog.com/2012/10/02/svn-log-to-csv-converter/