0

我正在尝试使用 Hudson 在 CVS 存储库上执行 CI,但是当我尝试运行构建时收到以下错误:

由用户管理员启动 [Pilot1] $ "C:\Program Files (x86)\CVS Suite\CVSNT\cvs.exe" -Q -z3 -d :sserver: login :_ server :/CVSRepo co -P -d workspace - D“UTC 时间 2011 年 3 月 3 日星期四下午 2:20:08” ITitC /

cvs 结帐:在目录中。:

cvs checkout:无法打开 CVS/Entries 进行读取:没有这样的文件或目录 java.io.IOException:不存在这样的目录。您是否指定了正确的分支?也许您指定了一个标签:c:\ path \workspace

在 hudson.scm.CVSSCM.archive(CVSSCM.java:474) 在 hudson.scm.CVSSCM.access$100(CVSSCM.java:123) 在 hudson.scm.CVSSCM$1.invoke(CVSSCM.java:381) 在 hudson。 scm.CVSSCM$1.invoke(CVSSCM.java:374) 在 hudson.FilePath.act(FilePath.java:753)

如果我在命令末尾删除“ITitC”(模块)并直接通过 cmd 提示符运行它,我能够成功进行更新。我还能够在 Hudson 构建开始时在“工作区”目录中快速创建一个具有该名称的文件夹,但每个新构建都会将其删除。

有没有一种方法可以强制 Hudson 或 CVSNT 在每次构建之前或默认情况下根据需要创建文件夹?这是 CVSNT 的问题吗?我不太喜欢 CVSNT,我愿意用更好的选择来代替它。

4

2 回答 2

1

我们在 CVS 1.11.xx 中遇到了同样的问题,但无法解决。结果我们迁移到 CVS 1.12.xx 并且 Hudson 工作正常。似乎此问题特定于某些 CVS 服务器构建,与 CVS 客户端无关。

于 2011-11-11T11:29:42.590 回答
0

我遇到了类似的问题

[workspace] $ cvs.exe -Q -z3 -d :pserver:user@server01:/cvsrepo/projectrepo co -P -N -d . -D "Thursday, June 13, 2013 9:24:00 PM UTC" Module1 Module2
cvs.exe checkout: cannot open CVS/Entries for reading: No such file or directory

仅指定一个模块,结帐工作和模块的内容直接位于由 Hudson 创建的工作区文件夹下。(没有创建 Module1 文件夹)

对于多个模块,检出仅在 -d 中指定了目录名称时才有效。使用默认的 Hudson 指定。是发生错误的时间。

[workspace] $ cvs.exe -Q -z3 -d :pserver:user@server01:/cvsrepo/projectrepo co -P -N -d customDir -D "Thursday, June 13, 2013 9:53:46 PM UTC" Module1 Module2
$ computing changelog
Finished: SUCCESS

指定 customDir 会在工作空间下创建一个 customDir 文件夹,其下有 Module1 和 Module2 文件夹。

这种行为发生在命令行以及 Hudson 内部,因此它必须是 CVS 的一个特性。

于 2013-06-13T22:17:32.817 回答