【问题标题】:CruiseControl.net and SubversionCruiseControl.net 和 Subversion
【发布时间】:2010-01-11 22:03:59
【问题描述】:

当 subversion 更新时,我的项目没有注意到。我有完全相同的设置在另一台服务器上工作。这是一个虚拟服务器。

这是我提交后的日志文件。似乎 ccnet 可以看到有更新,但它只是以未检测到修改结束。

2009-12-17 10:34:47,000 [MyProjectName Continuous Integration:INFO] Project: 'MyProjectName Continuous Integration' is first in queue: 'MyProjectName Continuous Integration' and shall start integration.
2009-12-17 10:34:47,000 [MyProjectName Continuous Integration:DEBUG] Checking if C:\Program Files\CruiseControl.NET\server\MyProjectName Continuous Integration\WorkingDirectory is a svn working folder
2009-12-17 10:34:47,000 [MyProjectName Continuous Integration:DEBUG] Starting process [svn] in working directory [C:\Program Files\CruiseControl.NET\server\MyProjectName Continuous Integration\WorkingDirectory] with arguments [log svn://myserver.com/trunk -r "{2009-12-16T21:19:48Z}:{2009-12-17T17:34:47Z}" --verbose --xml --username myusername --password mypassword --non-interactive --no-auth-cache]
2009-12-17 10:34:47,203 [444:DEBUG] [MyProjectName Continuous Integration svn] <?xml version="1.0"?>
2009-12-17 10:34:47,203 [444:DEBUG] [MyProjectName Continuous Integration svn] <log>
2009-12-17 10:34:47,203 [444:DEBUG] [MyProjectName Continuous Integration svn] <logentry
2009-12-17 10:34:47,203 [444:DEBUG] [MyProjectName Continuous Integration svn]    revision="1427">
2009-12-17 10:34:47,203 [444:DEBUG] [MyProjectName Continuous Integration svn] <author>myusername</author>
2009-12-17 10:34:47,203 [444:DEBUG] [MyProjectName Continuous Integration svn] <date>2009-12-16T18:34:50.148524Z</date>
2009-12-17 10:34:47,203 [444:DEBUG] [MyProjectName Continuous Integration svn] <paths>
2009-12-17 10:34:47,203 [444:DEBUG] [MyProjectName Continuous Integration svn] <path
2009-12-17 10:34:47,203 [444:DEBUG] [MyProjectName Continuous Integration svn]    kind=""
2009-12-17 10:34:47,203 [444:DEBUG] [MyProjectName Continuous Integration svn]    action="M">/trunk/MyProject/MyFile.cs</path>
2009-12-17 10:34:47,203 [444:DEBUG] [MyProjectName Continuous Integration svn] </paths>
2009-12-17 10:34:47,203 [444:DEBUG] [MyProjectName Continuous Integration svn] <msg></msg>
2009-12-17 10:34:47,203 [444:DEBUG] [MyProjectName Continuous Integration svn] </logentry>
2009-12-17 10:34:47,203 [444:DEBUG] [MyProjectName Continuous Integration svn] </log>
2009-12-17 10:34:47,312 [MyProjectName Continuous Integration:INFO] No modifications detected.

【问题讨论】:

  • -r "{2009-12-16T21:19:48Z}:{2009-12-17T17:34:47Z}" 看起来很可疑。
  • 我昨天设置了它,它每两分钟检查一次颠覆。日期应该更近吗?

标签: svn cruisecontrol.net


【解决方案1】:

我可以通过更新到最新的 ccnet 来解决这个问题。他们使用修订而不是日期来更新触发器。之后一切正常。

【讨论】:

  • 在超过两天的时间内,当堆栈溢出允许我时,我将接受我自己的答案
【解决方案2】:

你没有任何修改,你只是认为你有。这是 Subversion 的一个经典问题,许多 CC.NET 用户都会遇到这种问题。仔细查看日志,您会看到:

  • SVN 命令在 2009-12-17 10:34:47 执行(推测你在 GMT-7 时区)
  • 检查的修改范围是从 2009-12-16 21:19:48 GMT 到 2009-12-17 17:34:47 GMT - 即,在过去 20 小时内,或多或少
  • 唯一报告的修订是从 2009 年 12 月 16 日 18:34:50.148524 GMT - 之前范围的开始。

简而言之,svn log 撒谎,或者至少有点谎言,因为它总是报告至少一个更改,即使它比指定范围更早。如果您想了解详细信息,请参阅SVN bug #1642。很有可能它永远不会被修复 - 最后一条评论来自 2004 年。

这在 CC.NET 文档中有介绍:

CruiseControl.NET 看不到我的 变化

Subversion 接口依赖于 CruiseControl.Net 的时钟 和正在设置的 Subversion 服务器 在很小的差异之内。由于一个 长期存在的颠覆错误(Bugzilla #1642) 似乎永远无法修复,CruiseControl.Net 必须 过滤修改列表 由 Subversion 返回,正在寻找 只有那些属于特定的 时间范围。当两人的时钟 服务器明显不同, 过滤器可能会忽略修改 不应忽视这一点。阻止 这个问题,保持时钟 两台服务器设置得尽可能紧密 可能。

【讨论】:

    【解决方案3】:

    您的虚拟服务器是否在未来运行?也许你应该尝试一些时间同步。

    【讨论】:

    • 我已经尝试过时间同步,但它似乎不起作用。如果我将 Cruise control.net 服务器时间放在遥远的过去,这是否能确保看到更改?
    • 我将日期移到过去 1 年,只是为了看看它是否会有所反应......什么都没有
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多