【问题标题】:How do you get notified of your repository's updates?您如何获得存储库更新的通知?
【发布时间】:2010-02-17 07:26:59
【问题描述】:

我正在开发多个存储库,如果 SVN 存储库有任何变化,我希望得到通知。

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

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

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

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

【问题讨论】:

    标签: svn version-control change-notification


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      • 如何启动 SVN 通知程序?有exe吗它曾经自己运行,但我几天前就停止了。
      【解决方案3】:

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

      【讨论】:

        【解决方案4】:

        【讨论】:

          【解决方案5】:

          我使用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..." }
          

          这比使用上述任何第三方应用程序更容易和便携。

          【讨论】:

          • 通知方式是什么?从 PowerShell 代码中不清楚。
          • 如何通知用户?例如,是否打开了包含通知文本的 new 命令行窗口?
          • 您可以选择任何内容:if-changed trunk { Send-Mail ... }。 BaloonPopup 是另一个受欢迎的选择。
          • 给出的示例代码中实际发生了什么?它是否在类似于命令行窗口(黑色窗口)的东西中非常简短地(或不那么短暂地)显示“正在部署中继...”?
          • 如果您一直运行此脚本,它将在控制台中显示“部署中继”。如果您不想查看控制台窗口,您可以通过例如 TaskScheduler 隐藏运行它,在这种情况下不会看到消息,但您使用其他一些机制,例如 BaloonPopup,然后会从托盘中弹出消息。
          【解决方案6】:

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

          Revision: 183
          

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

          【讨论】:

            【解决方案7】:

            我用

            svn status --show-updates
            

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

            您可以使用Subversion's hook scripts 设置通知。

            【讨论】:

            • 没用。我想收到通知。
            猜你喜欢
            • 2011-03-03
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2021-05-03
            • 2017-11-11
            • 2023-03-14
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多