65.9K
CodeProject 正在变化。 阅读更多。
Home

Subversion RSS 日志

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.69/5 (7投票s)

2008 年 6 月 19 日

CPOL

4分钟阅读

viewsIcon

34089

downloadIcon

234

一个与 Subversion 仓库交互并生成几种不同格式日志的应用程序;TXT、XML、带有 XSL 的 XML 和 RSS。

引言

每个开发者,无论单独工作还是团队合作,都应该使用某种形式的源代码控制。这是有效编程和协作的重要组成部分。一个流行的源代码控制系统是 Subversion。我已经使用源代码控制系统进行开发几年了。我发现它们在某些方面做得很好;但通常也有一些方面做得不太好。在我看来,它们通常做得不太好的一件事是沟通。了解其他开发者是否对可能影响您正在处理的代码区域进行了更改非常重要。还有一些其他关键参与者(而非开发者)也需要了解情况。虽然没有替代直接沟通,但我发现的一种解决方案是使用 RSS 订阅来让所有人保持更新。

背景

虽然有很多不同的方法可以使 Subversion 生成 RSS 订阅,但大多数方法都涉及直接访问 Subversion 服务器并使用钩子脚本。这并非在所有情况下都是可能的。我的解决方案不使用任何钩子脚本,也不需要在 Subversion 服务器上运行代码。我的解决方案利用了从 Subversion 客户端检索日志的能力。我最近发现了 SharpSvn,这是针对 .NET 2.0 应用程序的 Subversion 客户端 API 的绑定。我使用 SharpSvn API 与 Subversion 仓库交互以检索更改列表,并将它们报告为最终用户可以使用的 RSS 订阅。

为了生成 RSS 订阅,我包含了一个我编写的自定义组件 myRSS。使用它创建 RSS 订阅非常容易,我已经使用了相当一段时间。它内置了写入 RSS 订阅和读取 RSS 订阅的功能。输出可以是流或文件。我一直在 ASP.NET 项目中使用流输出写入 Response 流。到目前为止,它运行良好。我还使用 myRSS 作为引擎构建了一个 RSS 阅读器。这两个项目都在生产环境中使用了相当长的一段时间,没有出现问题。如果大家感兴趣,我会发表一篇关于它的文章。

Using the Code

应用程序的配置非常简单。设置存储在应用程序配置文件中。设置如下:

  • repository_location
  • last_revision
    • 应用程序下次运行将从中检索数据的 Subversion 仓库的修订版本。每次应用程序运行并发现更改时,都会将其更新到最新修订版本。
  • output_type
    • 控制台
      • 将所有数据输出到控制台。
    • RSS
      • 标准 RSS 订阅。该订阅设置为保留过去一天的数据。
    • TXT
      • 包含数据的纯文本文件。如果文件存在,它将把新数据追加到文件末尾。
    • XML
      • 包含原始数据的 XML 文件。如果文件存在,它将把新数据追加到文件末尾。
    • XLMTransform
      • 原始 XML 数据的转换。
      • 尚未完全测试和实现。这目前正在开发中。
  • service_interval
    • 当应用程序以服务模式运行时,这将控制服务检索日志的间隔(以分钟为单位)。

该应用程序可以作为控制台应用程序或 Windows 服务运行。我的想法来自 这篇 Code Project 文章。要将其作为控制台应用程序运行,请在不带任何参数的情况下运行应用程序。要将其作为服务运行,请使用–service参数运行它。要从系统中删除该服务,请使用–removeservice参数运行它。

要安装,请将编译后的二进制文件和应用程序配置文件解压缩到一个目录中。根据需要设置应用程序配置文件。将应用程序安装为服务(使用–service参数运行一次)或设置任务计划程序任务以在不带任何参数的情况下执行应用程序。设置 IIS 的虚拟目录以指向您解压缩文件和安装服务的目录。

关注点

目前还没有。欢迎发表评论和批评。

历史

  • 2008年6月19日:初始发布
© . All rights reserved.