目前我只想查找最近X天未被修改的所有文件,但最终我希望能对我的Subversion存储库进行更复杂的查询。
是否有某种Subversion查询语言或API可用?
目前我只想查找最近X天未被修改的所有文件,但最终我希望能对我的Subversion存储库进行更复杂的查询。
是否有某种Subversion查询语言或API可用?
你可以使用SvnQuery项目(http://svnquery.tigris.org),该项目旨在为此类查询提供查询接口。它具有.NET API和Web前端,提供相同的查询语言。您可以使用运算符、嵌套表达式、通配符、短语和间隔短语进行复杂的查询。您要求的运算符计算现在和上次提交日期之间的差异尚未实现,但由于它是一个开源项目,您可以自愿承担此任务或发布功能请求以实现它 :-)
$data = [xml] (svn log -r "r1:r2" --xml)
$data.log.logentry | where-object {$_.message -match "regex"}
甚至可以在文件更改时运行(需要一些必要的魔法来避免已知的PowerShell问题)
$diff = [xml] (svn diff -r "r1:r2" --xml --summarize | %{$_ -replace "item", "item1"})
$diff.diff.paths.path | where-object {$_.item1 -eq "file"}
目前还没有广泛使用的Subversion查询语言或基于查询的API(好吧,现在看到有人与我矛盾了,这就是网络生活吧)。
这意味着您只能将普通SVN命令的输出拼接在一起,例如:
svn info
svn log
没有仓库查询语言或搜索API。对于复杂的查询,您需要一个仓库索引器(例如http://supose.soebes.de/wiki/supose)或提交数据库(例如http://www.viewvc.org/)。http://markmail.org/thread/wszzgnrny6o2r7u7中提供了一些更多的链接。
sqlite3 .svn\wc.db "select changed_revision, datetime((changed_date/1000000),'unixepoch') changed_date, changed_author, repos_path from NODES"
changed_date/1000000
。您是唯一一个提到这个的人。 - steven