2011-10-10 68 views
2

我試圖在詹金斯執行post build svn commit命令。由於根文件夾被禁止,無法執行提交到svn

我有權訪問http://myrepo.com/myProject ...但我沒有http://myrepo.com/(訪問被禁止)。其結果是,當我承諾,我發現了以下錯誤:

svn commit --message "Build #xx" myfile --non-interactive 

svn: Commit failed (details follow): 

svn: OPTIONS of 'http://myrepo.com/myProject/myfile': authorization failed: Could not 
authenticate to server: rejected Basic challenge (http://myrepo.com) 

回答

4

當您運行命令行SVN,你沒有訪問存儲在詹金斯的 憑據。

使命令行SVN工作最簡單的方法是提供 --username--password參數生成腳本運行svn。

您也可以運行svn作爲Jenkins用戶,並讓其將認證 存儲在Jenkins用戶的主目錄中。您必須在需要執行提交的每個節點上自行設置身份驗證 。如果您的SSL證書或密碼定期更改,則維護 會很繁瑣。但是 保留用戶名,密碼不在構建腳本中。

也許像SVN Publisher這樣的插件可以幫助你完成任務。

+1

嗨。謝謝您的回覆。 1)你的方式正常工作。 2)我不明白爲什麼它不能只在命令行中工作? (我在Windows cmd中試過這樣的命令,它可以工作(在我通過tortouiseSVN登錄之前)。3)你能描述一下Jenkins \ SVN的證書嗎? 4)你能解釋一下PLZ如何能夠幫助我嗎?謝謝你的建議。 – davs

+0

除了我以前的評論:我們的SVN服務器不支持https連接 – davs

+1

它在您的命令行上適合您的原因是它在您自己的帳戶中運行。當Jenkins運行該命令時,它將以不同的用戶身份運行,因此您的憑據將不可見。你可以在Windows上使用'runas'命令來查看這個效果。 –

相關問題