23

我正在工作中的几个存储库,如果 SVN 存储库有任何变化,我希望得到通知。

我制作了一个小型 BAT 脚本(是的,有时 BAT 很有用),它一直svn log -r BASE:HEAD在我的工作副本上执行。它显示所有提交评论和修订日期。它工作得非常好,但对于不同的存储库来说并不舒适。

您如何跟踪存储库中的更改?你使用自己制作的小程序吗?你使用别人制作的软件吗?我对解决这个问题的每一种方法都感兴趣。

我想获得有关提交的通知和更多信息。IDE 集成的功能很好,但只有在我请求信息时才有效。
我不想采取行动来获取这些信息。

平台:Windows,Subversion 1.5 及更高版本。

4

7 回答 7

33

我正在使用CommitMonitor;它来自TortoiseSVN开发人员之一。您可以轻松添加多个 SVN URL 来监控并指定检查提交的时间间隔。如果发现任何更新,它会在屏幕一角显示一个小弹出窗口。

还有SVN Monitor,但使用和设置有点复杂。除了在提交时提供消息外,它还可以显示您修改了哪些文件并提醒您提交更改。

于 2010-02-17T08:21:00.380 回答
5

如果你安装了TortoiseSVN,那么你可以使用SVN Notifier

于 2010-02-17T10:02:27.087 回答
2

我安装了WebSVN并订阅了我感兴趣的路径的 RSS 提要。

于 2010-02-17T11:12:43.767 回答
1

我使用PowerShell来检测 SVN 分支上的更改并进行部署。该脚本应该从任务调度程序调用并从 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..." }

这比使用上述任何第三方应用程序更容易和可移植。

于 2015-03-24T07:32:12.377 回答
1

电子邮件。可以在 subversion 中找到一个示例SVN post-commit hook 来发送电子邮件。

于 2010-03-29T04:09:00.657 回答
0

svn info | grep Revision为我工作。它显示,例如:

Revision: 183

如果它与我认为应该改变的不同,那么我会进一步调查。

于 2010-02-17T07:31:14.083 回答
0

我用

svn status --show-updates

向您展示我已更改的文件以及存储库中已更改的文件。

你可以使用Subversion 的钩子脚本来设置通知。

于 2010-02-17T07:40:34.983 回答