20

Subversion ログ メッセージをスプレッドシート (Excel、csv など) 形式にエクスポートする方法はありますか?

TortoiseSVN のログ メッセージ ウィンドウからコピーすると、次の形式でテキストが貼り付けられます。

Revision: 174
Author: CARDINALHEALTH\enrique.colon
Date: Wednesday, July 11, 2012 9:37:02 AM
Message: CR #58514
----
Modified : /trunk/ob_progs/utility/connect_peek

必要に応じて、これを CSV に再フォーマットするスクリプトを作成できます。しかし、私は本当にしたくありません:(

4

4 に答える 4

43
  1. 次の Subversion コマンドを使用して、リポジトリのログから xml ファイルを作成します。

    svn ログ -v --xml > repository_log.xml

  2. xml ファイルをExcelスプレッドシートにインポートします (LibreOffice/OpenOffice で動作するかどうかは不明です)。たとえば、cmd から:

    エクセルのrepository_log.xmlを起動

  3. その後、スプレッドシートとして保存できます。

それでおしまい!

于 2013-07-12T19:58:26.523 に答える
27

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へ

于 2012-07-11T17:37:50.937 に答える
2

Chris West は非常にシンプルでありながら効果的なソリューションを思いつきました: http://gotochriswest.com/blog/2012/10/02/svn-log-to-csv-converter/ 実際、ページはここに移動したようです: http: //cwestblog.com/2012/10/02/svn-log-to-csv-converter/

彼はそのページに 2 つのソリューションをリストしました。1 つ目は、CSV を出力する Java プログラムです。2 つ目は、貼り付けられた SVN ログを CSV に変換する JSBin ページです。

于 2012-10-09T19:26:21.580 に答える