2011-07-15 75 views
2

當我在我的VisualSVN存儲庫上使用post-commit掛鉤時,TortoiseSVN在「發送內容」上掛起(凍結)。以下是掛鉤:使用post-commit掛鉤時TortoiseSVN掛起

cd C:\Sysinternals\ 

PsExec \\\OtherComputer TortoiseProc /command:update /path:"C:\MyPath\" /closeonend:4 

內容已發送,但需要進行本地更新或標記爲過時。有任何想法嗎?

+0

您可以使用命令行客戶端成功提交嗎? –

+0

使用/命令:提交只是提出了提交圖形用戶界面。有另一種方法嗎?但是,不,使用/命令:提交結果的行爲相同。 感謝您的格式幫助,順便說一下。 – Chris

+0

我的意思是[命令行客戶端](http://svnbook.red-bean.com/nightly/en/svn.ref.svn.c.commit.html)。如果您尚未擁有它,請在http://www.sliksvn.com/en/download下載。 –

回答

1

這看起來像一個本地鉤子。我不認爲你可以像這樣使用PsExec。我想你打開另一臺電腦上的PsExec會話,它就在那裏。它沒有辦法查看腳本中的下一行。即TortoiseProc沒有被送入PsExec。
我想你需要在另一臺機器上安裝SVN客戶端(命令行客戶端)。然後做一個bat文件(updateme.bat),將其放置在該機器上,那麼你可以做這樣的事情(在一行上):

c:\sysinternals\PsExec \\OtherComputer c:\updateme.bat 
2

的鉤子腳本已完成第一,使提交成功。所以客戶必須等待。如果你的鉤子腳本花費太長時間或者根本沒有完成,那麼提交就會掛起。 您可以嘗試在單獨的進程中的鉤子腳本中啓動長時間運行的命令,以便鉤子腳本本身立即完成。

但是:如果OtherComputer是您嘗試從中提交的計算機,並且腳本嘗試更新完全相同的工作副本,那麼這也無濟於事:更新必須等到提交完成,但提交等待運行更新的鉤子腳本完成 - 你有一個死鎖。