Как экспортировать журнал 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 15

3 ответа:

  1. Используйте следующую команду Subversion для создания xml-файла из журнала репозитория:

    Svn log-v --xml > repository_log.xml

  2. Импортируйте xml-файл в электронную таблицуExcel (не уверен, что он будет работать с LibreOffice/OpenOffice).

  3. Затем вы можете сохранить его в виде электронной таблицы.

Вот и все!

Поскольку вы используете 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 и отправить его в файл с командой, как это:

Get-SvnLogData | Export-Csv -Path temp.csv
Двойной щелчок по результирующему файлу открывает его в Excel:

SVN для Excel

Крис Уэст предложил довольно простое и в то же время эффективное решение.: http://gotochriswest.com/blog/2012/10/02/svn-log-to-csv-converter/ На самом деле страница кажется переместилась сюда: http://cwestblog.com/2012/10/02/svn-log-to-csv-converter/

На этой странице он перечислил два решения. Первый-это программа Java, которая будет выводить CSV. Вторая-это страница JSBin, которая преобразует вставленный журнал SVN в CSV.