我正在研究工作中的几个存储库,如果SVN存储库发生任何变化,我希望得到通知。
我制作了一个小型BAT脚本(是的,BAT有时很有用),它在我的工作副本上继续执行svn log -r BASE:HEAD
。它显示所有提交评论和修订日期。它工作得非常好,但对于不同的存储库来说并不舒服。
如何跟踪存储库中的更改?你是否使用自己制作的小程序?你使用别人制作的软件吗? 我对解决这个问题的方法很感兴趣。
我想获得通知以及有关提交的更多信息。 IDE集成功能很好,但只有在我请求信息时才能工作。
我不想采取行动来获取这些信息。
平台:Windows,Subversion 1.5及更高版本。
答案 0 :(得分:31)
我正在使用CommitMonitor;它来自TortoiseSVN开发人员之一。您可以轻松添加多个SVN URL进行监控,并指定检查提交的时间间隔。如果找到任何更新,它会在屏幕的一角显示一个小弹出窗口。
还有SVN Monitor,但使用和设置有点复杂。除了提交有关提交的消息外,它还可以显示您已修改的文件并提醒您提交更改。
答案 1 :(得分:5)
如果您安装了TortoiseSVN,则可以使用SVN Notifier。
答案 2 :(得分:2)
我安装了WebSVN并订阅了我感兴趣的路径的RSS源。
答案 3 :(得分:1)
答案 4 :(得分:1)
我使用PowerShell来检测SVN分支上的更改并进行部署。这个脚本应该从Task Scheduler调用并从SVN根执行(或者你可以简单地循环和永久睡眠):
function get-revision() {
$rev = svn info 2>&1 | sls '^Last Changed Rev:' | out-string
$rev = $rev -split ':'
$rev[1].Trim()
}
function if-changed([string]$branch, [scriptblock]$script) {
Write-Verbose "Checking for changes: $branch"
pushd $branch
$r = get-revision
if ($r -gt $status[$branch]) {
Write-Verbose "|- '$branch' changed, revision $r"
& $script
}
else { Write-Verbose "|- '$branch' is up to date at revision $r" }
$status[$branch] = $r
popd
}
svn update
Write-Verbose "Getting the deploy status"
if (Test-Path status) { $status = Import-Clixml status } else { Write-Verbose "|- No status found"; $status=@{} }
if-changed trunk { "Deploying trunk..." }
这比使用任何上述第三方应用程序更容易和便携。
答案 5 :(得分:0)
svn info | grep Revision
适合我。它显示,例如:
Revision: 183
如果它改变了我的想法,那么我会进一步调查。
答案 6 :(得分:0)