2016-06-28 91 views
0

我有一個網絡文件夾與裸倉庫。與網絡路徑的Windows Git問題

我正在使用Jenkins嘗試創建一個構建任務,檢查項目並使用Gi​​t插件和MsBuild插件構建它。

詹金斯窗口服務正在運行的服務帳戶,讓我們把它叫做svcBuilder

服務帳戶可以訪問網絡文件夾。我通過以svcBuilder身份登錄到構建服務器,打開Windows資源管理器並粘貼URI(例如\\ machine \ folder \ repo)來驗證這一點,並且我可以很好地訪問存儲庫。

在詹金斯我改變了這個路徑//機器/文件夾/回購(根據無數的職位建議)。

現在,當我將repo本地複製到構建服務器時,沒有錯誤(因此我確信該存儲庫功能正常)。然而,當我嘗試通過網絡訪問相同的存儲庫,我得到一個錯誤:

Failed to connect to repository : Command "C:\Program Files\Git\bin\git.exe -c core.askpass=true ls-remote -h //machine/folder/repo HEAD" 
returned status code 128: 
stdout: 
stderr: fatal: unable to get current working directory: No such file or directory 
fatal: The remote end hung up upon initial contact 

任何人都可以點我在正確的方向,以正在做什麼混帳導致此?我不能更改git命令,因爲它是由Jenkins插件生成的。

+0

好的,這麼奇怪的發展:當我將網絡驅動器映射到有問題的文件夾時,git工作正常。使用\\ machine \ folder \ repo,無論使用哪種方式,斜槓都不起作用。 – Bitfiddler

+0

更奇怪的是,從windows命令行使用git時,驅動器的映射似乎只能工作。當我使用Bash的git時,出現一個錯誤提示存儲庫不是git存儲庫。 – Bitfiddler

回答

0

好的,所以爲了得到這個工作,我下載並提取了Sysinternals Suite到我的C:\ Program Files文件(x86)\ SysinternalsSuite。然後,我爲Jenkins安裝了pre-scm-buildstep插件。然後我添加了下面的pre-scm-buildStep'windows batch command'。

IF EXIST Y:\NUL GOTO REPOEXISTS 
"C:\Program Files (x86)\SysinternalsSuite\psexec" -s net use Y: \\Machine\folder\repository jenkinsServiceUserPassword /u:DOMAIN\jenkinsServiceUser /persistent:yes 
:REPOEXISTS 

這樣,如果重新啓動服務器,我沒有惹登錄腳本週圍或依賴於驅動器被設置正確提前,腳本只是簡單地測試驅動器是否有和地圖如果它丟失。順便說一句,jenkinsServiceUser是構建服務器上的管理員。