2011-03-03 64 views
0

我試圖用哈德森做一個CVS倉庫CI拉動,但我收到以下錯誤,當我嘗試運行構建:問題哈德森/詹金斯從CVS回購

發起者用戶管理 [PILOT1] $ 「C:\ Program Files文件(x86)的\ CVS套房\ CVSNT \ cvs.exe的」 -Q -z3 -d:sserver:登錄:_ 服務器:/ CVSRepo合作-p -D 工作區 -D「2011年3月3日星期四下午02點20分08秒」ITitC/

cvs checkout:在目錄中:

cvs checkout:無法打開CVS /條目閱讀:沒有這樣的文件或目錄 java.io.IOException:沒有這樣的目錄存在。你指定了正確的分支嗎?也許你指定一個標籤:C:\ 路徑 \ 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或CVSNT根據需要創建文件夾?這是CVSNT的問題嗎?我不太關心CVSNT,並且願意用更好的選擇來替代它。

+1

有兩件事:1.你的CVSROOT字符串看起來很奇怪,但這可能只是一個混淆現象......':sserver:'的連接字符串應該看起來像這樣:':sspi:user @ server:/ CVSRepo' (注意@而不是冒號)。 2.命令行中的「ITitC」不是分支,而是您試圖結帳的模塊的名稱。如果確實是分支的名稱,那麼應該使用'-r ITitC'來代替。不過,您仍然需要指定要檢出的模塊。如果您想要檢出整個存儲庫,則可以簡單地使用「。」。 (即單個週期字符)作爲模塊名稱。 – 2011-03-04 08:53:20

+0

另外,如果ITitC確實是模塊的名稱而不是分支,那麼最後應該丟掉正斜槓。 – 2011-03-04 08:54:47

+0

對不起,在我的第一個評論中的拼寫錯誤:我搞砸了CVSROOT示例中的協議。當然應該是':sserver:user @ server:/ CVSRepo' – 2011-03-04 10:17:20

回答

1

我們遇到了同樣的問題,CVS 1.11.xx並無法解決它。結果我們轉向了CVS 1.12.xx,Hudson運行良好。似乎這個問題是特定於某些CVS服務器版本的,並且與CVS客戶端沒有關係。

0

我遇到過類似的問題

[workspace] $ cvs.exe -Q -z3 -d :pserver:[email protected]:/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 

只有一個指定的模塊,結賬工程和模塊的內容是直接由哈德森創建的工作區文件夾下。 (沒有創建Module1文件夾)

對於多個模塊,只有在-d中指定了目錄名稱,checkout纔有效。使用指定的默認Hudson。是發生錯誤的時候。

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

指定customDir將在其下面的Module1和Module2文件夾下的工作區下創建一個customDir文件夾。

此行爲發生在命令行以及Hudson內部,因此它必須是CVS的一項功能。