lam*_*cro 18 xml svn tortoisesvn logging spreadsheet
有没有办法将Subversion日志消息导出到电子表格(excel,csv等)格式?
从TortoiseSVN的Log Messages窗口复制时,它会按以下格式粘贴文本:
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
Run Code Online (Sandbox Code Playgroud)
如有必要,我可以创建一个脚本,将其重新格式化为CSV格式.但我真的不想:(
lam*_*cro 36
使用以下Subversion命令从存储库的日志中创建xml文件:
svn log -v --xml> repository_log.xml
将xml文件导入Excel电子表格(不确定它是否可以与LibreOffice/OpenOffice一起使用).
然后,您可以将其另存为电子表格.
而已!
Mic*_*ens 26
由于您使用的是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 }}`
}
}
}
Run Code Online (Sandbox Code Playgroud)
默认输出是一个列表,例如:
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
. . .
Run Code Online (Sandbox Code Playgroud)
但是用这个命令......
Get-SvnLogData | Format-Table -AutoSize
Run Code Online (Sandbox Code Playgroud)
...你可以告诉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
. . .
Run Code Online (Sandbox Code Playgroud)
并实际回答你的问题:-)你可以很容易地将输出转换为CSV并使用如下命令将其发送到文件:
Get-SvnLogData | Export-Csv -Path temp.csv
Run Code Online (Sandbox Code Playgroud)
双击生成的文件在Excel中打开它:
归档时间: |
|
查看次数: |
28741 次 |
最近记录: |