2012-01-22 24 views
4

我的post-commit掛鉤永遠不會被觸發,我認爲這是因爲
我需要設置一些文件系統權限。如何在win7中設置VisualSVN post-commit掛鉤64bit

我安裝了VisualSVN-Server-2.5.2並運行帶Subversion插件的eclipse。

除VisualSVN掛鉤觸發外,所有工作都按預期工作。

這是我的後commit.cmd文件與1 當我把這樣的提交窗口中的「開始」文本與凍結名稱「後commit.cmd」

C:\PROGRA~2\VISUAL~1\bin\myScript.cmd 
exit 0 

UPDATE一個脈動的前進綠色條,就像它在等待鉤子觸發或somehing.I不能
取消提交操作,但我可以關閉日食,然後硬殺提交窗口。

start C:\PROGRA~2\VISUAL~1\bin\post-commit.cmd 
exit 0 

更新2

它的工作,如果保存庫到本地硬盤。這是當網絡驅動器的保存路徑不起作用時。好吧,這是向前邁進的一步。洗澡文件也需要一些用戶/密碼也許

下面是節約資源庫本地硬盤的bat文件(感謝克里斯託弗C.西蒙斯(CCS))

@ECHO OFF 
CLS 
:: =================== COPYRIGHT ========================================= 
:: File:   svn_backup.bat 
:: Author:  Christopher C. Simmons (CCS) 
:: Date:   05.01.2008 
:: Purpose:  To make backups ("hot copies") of multiple SVN repos 
:: History:  0.1 Initial Release 
:: Assumes:  Your path contains: C:\Program Files\Subversion\bin 
::    Your repodir contains only repos 
:: Copyright:  2008 csimmons.net 
::     
:: NOTICE!!! 
:: csimmons.net, LLC supplies this software AS IS and makes no guarantees 
:: for your use of it. csimmons.net, LLC is not responsible for any damage 
:: or pain the use of this product may cause you. Please give credit if 
:: you use this or create a derivative work. 
:: =================== COPYRIGHT ========================================= 

:: =================== CONFIG ============================================ 
:: Path of the dir containing your repos [Note Trailing slash] 
SET repodir=F:\Repositories\ 
:: Path of the dir in which to create you hotcopies [Note Trailing slash] 
SET repodirhot=f:\druidBACKUP\SVN\ 
:: Path for log file [Note Trailing slash] 
SET logdir=f:\druidBACKUP\SVN\ 
:: Path for svnadmin [Note Trailing slash] 
::SET svnpath=C:\PROGRA~2\VISUAL~1\bin\svnadmin.exe 
:: User mode - 1=Interactive | 0=NonInteractive 
SET imode=1 
:: =================== CONFIG ============================================ 

:: =================== SCRIPT ============================================ 
:: !!! NO NEED TO EDIT BEYOND THIS POINT !!! 

:: Make a date_time stamp like 030902_134200 
SET hh=%time:~0,2% 

:: Add a zero when this is run before 10 am. 
IF "%time:~0,1%"==" " set hh=0%hh:~1,1% 
SET yymmdd_hhmmss=%date:~12,2%%date:~4,2%%date:~7,2%_%hh%%time:~3,2%%time:~6,2% 

:: Make a name for the log file 
SET repolog=%logdir%%yymmdd_hhmmss%repobackup.log 

:: Start log 
ECHO START %date% %time% >> %repolog% 

:: IF a hotcopy exists delete it first ELSE 
:: Create directories and svn hotcopy repos to them 
FOR /F %%G IN ('dir /b /ad %repodir%') DO^
IF EXIST %repodirhot%%%G (rmdir /S /Q %repodirhot%%%G & mkdir %repodirhot%%%G >> %repolog% &^
ECHO Starting SVN backup for %%G... >> %repolog% &^
C:\PROGRA~2\VISUAL~1\bin\svnadmin hotcopy %repodir%%%G %repodirhot%%%G --clean-logs >> %repolog% &^
IF %imode%== 1 ECHO FINISHED...%%G)^
ELSE (mkdir %repodirhot%%%G >> %repolog% &^
ECHO Starting SVN backup for %%G... >> %repolog% &^
C:\PROGRA~2\VISUAL~1\bin\svnadmin hotcopy %repodir%%%G %repodirhot%%%G --clean-logs >> %repolog% &^
IF %imode%== 1 ECHO FINISHED...%%G) 

:: Finish log 
ECHO END %date% %time% >> %repolog% 
:: Display log message if interactive mode otherwise EXIT 
ECHO Done... Logs available here: %repolog% 
if %imode%== 1 pause 
:: =================== SCRIPT ============================================ 
EXIT 

的想法是推出一個更大的腳本myScript.cmd女巫正在做
我的存儲庫的hotcopy。這是工作,如果我手動啓動後commit.cmd

閱讀手冊這裏 visualsvn.com

我無法理解,切實做下面關於這是什麼文字。

「Subversion以擁有正在訪問Subversion版本庫的進程的同一用戶身份執行鉤子,在大多數情況下,版本庫通過Subversion服務器進行訪問,因此該用戶與運行服務器的用戶相同系統,鉤子本身需要配置允許用戶執行它們的操作系統級權限,並且這意味着任何直接或者間接被鉤子訪問的程序或者文件(包括Subversion倉庫)都將被訪問爲換句話說,要警惕潛在的與權限相關的問題,這些問題可能會阻止hook執行設計要執行的任務。「

UPDATEPermission to set

+0

喜埃裏克,你怎麼加的VisualSVN管理員用戶,如圖截圖? –

+0

現在我不記得如果我這樣做。因爲我從來沒有在NAS – Erik

+2

上運行,所以它會工作我知道了。 http://stackoverflow.com/a/17849729/1357033 –

回答

4
  • VisualSVN服務器服務通過 默認或在專用客戶帳戶下Network Service帳戶下運行(需要手工創建 )。如果鉤子腳本正常工作,當你手動啓動它

  • 顛覆掛鉤的VisualSVN服務器維護的情況下執行
    帳戶(Network Service或專用賬戶)

,我建議你檢查的權限服務帳戶。它應該可以訪問'C:\ PROGRA〜2 \ VISUAL〜1 \ bin \ myScript.cmd'以及所有其他涉及的文件。

請注意,在Subversion調用掛鉤腳本之前,它會從環境中刪除所有變量,包括Windows上的%PATH%。因此,如果您拼出該程序的絕對名稱,則您的腳本只能運行其他程序。

Subversion FAQ: Why aren't my repository hooks working?

+0

用圖片更新了我的問題。在圖片中,我想我確定權限。在圖片中,是VisualSvn的「服務賬戶」? – Erik

+1

不,您在權限對話框中顯示的帳戶是「VisualSVN服務器管理員」。此帳戶用於向域用戶提供使用VisualSVN Server Manager遠程訪問VisualSVN Server的權限。 – bahrep

+2

要驗證用於運行VisualSVN Server服務的帳戶,您應該轉到'services.msc',在列表中找到** VisualSVN Server **並檢查它是否是'登錄'設置。默認情況下,它應該是「網絡服務」(但在瑞典語中可能拼寫不同)。 – bahrep