2013-04-04 93 views
3

的情況時出錯我正在使用VisualSVN Server來管理源文件夾。它安裝在Windows XP機器上,可以訪問網絡磁盤。post-commit掛鉤,svn:E020024:解決

名爲W:這個網盤,我的文件夾上進行結帳這樣:

svn update W:\Project 

的問題是:

svn checkout https://server:443/svn/Project W:\Project --username=user --password=pass 

我現在就可以使用這個命令來更新這個文件夾:

我想添加一個運行此命令的post-commit鉤子:

svn update W:\Project 

但是當我承諾,會出現這樣的錯誤:

At revision: 123 
post-commit hook failed (exit code 1) with output: 
svn: E020024: Error resolving case of 'W:\Project' 

任何想法?我不知道這是否是一種好的做法,我的目標是將該項目的副本保存在svn服務器外的另一個磁盤上並進行備份。

+0

您是否試圖使用post-commit hook來提交您想要'svn update'的同一個工作副本?什麼是完整的鉤子代碼? – bahrep 2013-04-04 10:04:52

+0

我剛剛編輯帖子 – 2013-04-04 10:08:45

+1

您可能想使用[Continuous Integration](http://en.wikipedia.org/wiki/Continuous_integration#Software)服務器來進行研究。運行[TeamCity](http://www.jetbrains.com/teamcity/),[Jenkins](http://jenkins-ci.org/)或[Hudson](http://hudson-ci.org)(例如)會讓你做到這一點(和更多),而不必將鉤子添加到SVN。 – AlG 2013-04-04 11:40:17

回答

4

W:驅動器可能未映射到運行腳本的環境中。所有掛接腳本都在沒有設置環境變量的情況下運行。您需要明確指定文件共享的服務器名稱,或者在腳本中映射網絡驅動器。

+0

未映射的驅動器號不是因爲空的環境。這是因爲服務不會映射驅動器,因爲這是在交互式用戶登錄中完成的。 – alroc 2013-04-04 12:47:27

+0

映射的驅動器映射在每個用戶的基礎上,不能通過內置帳戶訪問,如「網絡服務」。 – bahrep 2013-04-04 12:49:44

0

您是否在使用post-commit hook腳本時使用了相同的工作副本?

您不能svn update您正在使用post-commit鉤子工作的相同工作副本。它必須是單獨的工作副本。您可以考慮使用svn export命令而不是svn update

+0

對於在post commit hook中無法完成的更新,你是對的。但我已經嘗試使用導出,並且我有完全相同的消息。看起來像網絡文件夾不可訪問...我編輯我的問題 – 2013-04-04 12:29:05

1

好吧,所以實際上可以對提交後操作進行更新。問題是我嘗試將我的存儲庫保存在網絡文件夾中。 VisualSVN服務的默認帳戶是NTAUTHORITY\NetworkService,無法訪問我的磁盤。所以我改變了用戶到一個網絡帳戶,現在它工作正常。

+1

默認帳戶是「網絡服務」! – bahrep 2013-04-05 10:23:04