共計 5194 個字符,預計需要花費 13 分鐘才能閱讀完成。
這篇文章主要介紹 SVN 服務器如何配置,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!
創建 autoRunSVN.bat 文件,內容是:
Cpp 代碼
sc create MySVNServer binpath= \ C:\Program Files\Subversion\svnserve\svnserve\ –service -r H:\homerepos displayname= SVNService depend= Tcpip start= auto
pause
sc create MySVNServer binpath= \ J:\java\Subversion\bin\svnserve.exe –service -r \ G:\svn repository\ displayname= SVNService depend= Tcpip start= auto
pause
注意之處:
(1)sc 是 windows 自帶的服務配置程序,MySVNServer 是服務的名稱,似乎沒什么用。
(2)參數 binPath 表示 svnserve 可執行文件的安裝路徑,由于路徑中的 Program Files 帶有空格,因此整個路徑需要用雙引號引起來。而雙引號本身是個特殊字符,需要進行轉義,因此在路徑前后的兩個雙引號都需要寫成 \。
(3)–service 參數表示以 windows 服務的形式運行,–r 指明 svn repository 的位置,service 參數與 r 參數都作為 binPath 的一部分,因此與 svnserve.exe 的路徑一起被包含在一對雙引號當中,而這對雙引號不需要進行轉義。
(4)displayname 表示在 windows 服務列表中顯示的名字,depend =Tcpip 表示 svnserve 服務的運行需要 tcpip 服務,start=auto 表示開機后自動運行。安裝服務后,svnserve 要等下次開機時才會自動運行。(5)binPath 的等號前面無空格,等號后面有空格 displayname depend start 也都一樣
service 前面是 –,不是 -,而 r 前面是 -
(6)若要卸載 svn 服務,則執行 sc delete svnserve 即可。
(7)從“sc”到“auto”是在同一個命令 sc,必須寫在同一行。
創建成功后,可以在運行中鍵入 service.msc 察看系統服務,找到 SVNService 項,查看這項服務的屬性,可以使用 Windows 提供的界面操作 SVNService 服務了。
P.S. 經本人實驗,以上的 SVN 開機自啟動方法一直無法實現,由于不會寫批處理語句,也不知道是哪里錯,但網上很多地方都是用這種方法去實現 開機自啟動。最后,只能重新找了一種新方法,雖然無法開機自啟動,但可以較方便實現多個服務進程和管理多個文件夾,請各位自行選擇。
創建 SVNService.bat 文件,內容如下(尊重作者版權,請勿刪除作者信息):
@ECHO OFF
::======================================================================
:: 作者 : Zealic
:: 版本 : 1.05
:: 功能 : 通過簡便快捷的方式安裝 Subversion.
:: 最后更新 : 2007-12-28
::======================================================================
:: 初始化環境
::======================================================================
ECHO *** 安裝 Subversion 服務 ***
::======================================================================
::======================================================================
:: 創建服務
::======================================================================
ECHO +++ 創建資源庫服務 +++
ECHO 創建系統服務,這需要輸入一些信息 …
:INPUT_SVC_NAME
SET /P svc_name= 請輸入服務名 :
:: 服務名不能為空值
if %svc_name% == (
ECHO 服務名不能為空,請重新輸入。
GOTO INPUT_SVC_NAME
)
:: 查詢服務是否存在,通過查找輸出是否存在錯誤,1060: 是發生錯誤是時輸出的錯誤代碼。
SC QUERY %svc_name% | find 1060: NUL
IF %errorlevel% == 1 (
ECHO 服務 %svc_name% 已經存在!請重新輸入服務名。
GOTO INPUT_SVC_NAME
)
ECHO.
:: 輸入資源庫信息
:INPUT_REPOS
SET /P repos= 請輸入資源庫路徑 :
ECHO.
:: 創建服務
ECHO 您使用以下信息創建 Subversion 服務 :
ECHO 服務名稱 : %svc_name%
ECHO 資源庫路徑 : %repos%
ECHO 正在創建服務 …
SC create %svc_name% binPath= \ E:\Subversion\bin\svnserve.exe\ –service -r \ %repos%\ depend= Tcpip start= auto| find 1060: NUL
ECHO.
IF %errorlevel% == 0 GOTO SC_ERROR
ECHO — 創建服務成功! —
ECHO.
ECHO.
::======================================================================
:: 生成操作批處理文件
::======================================================================
ECHO +++ 生成服務操作批處理 +++
ECHO 服務操作批處理文件可以幫助您快速操作服務。
SET bat_delete=DELETE_%svc_name%.BAT
SET bat_start=START_%svc_name%.BAT
SET bat_stop=STOP_%svc_name%.BAT
ECHO 生成刪除服務批處理 %bat_delete% …
::bat_delete
ECHO @ECHO OFF %bat_delete%
ECHO NET STOP %svc_name% %bat_delete%
ECHO SC delete %svc_name% %bat_delete%
ECHO DEL %bat_start% %bat_delete%
ECHO DEL %bat_stop% %bat_delete%
ECHO DEL %bat_delete% %bat_delete%
ECHO PAUSE %bat_delete%
::bat_start
ECHO 生成運行服務批處理 %bat_start% …
ECHO @ECHO OFF %bat_start%
ECHO NET START %svc_name% %bat_start%
ECHO PAUSE %bat_start%
::bat_stop
ECHO 生成停止服務批處理 %bat_stop% …
ECHO @ECHO OFF %bat_stop%
ECHO NET STOP %svc_name% %bat_stop%
ECHO PAUSE %bat_stop%
ECHO.
ECHO — 生成服務操作批處理成功! —
ECHO.
ECHO.
::======================================================================
::Finish
::======================================================================
ECHO ### 所有操作成功! ###
GOTO END
::======================================================================
:: 錯誤段
::======================================================================
:ENV_ERROR
ECHO — 設置環境變量失敗! —
GOTO END
:SC_ERROR
ECHO — 創建服務失敗! —
GOTO END
:SC_INV_PORT
ECHO 無效的端口號,請重新輸入。
GOTO INPUT_SVC_PORT
:END
PAUSE
其中 SC create %svc_name% binPath= \ E:\Subversion\bin\svnserve.exe\ –service -r \ %repos%\ depend= Tcpip start= auto| find 1060: NUL 需要將 binpath 改為 svnserve.exe 所在路徑,之后就可以運行服務了。
五、配置用戶和權限
用文本編輯器打開 E:\svn\repos1\conf 目錄,修改
svnserve.conf:
將:
# password-db = passwd
改為:
password-db = passwd
即去掉前面的
#
注釋符,注意前面不能有空格。
然后修改同目錄的
passwd 文件,增加一個帳號:
將:
[users]
# harry = harryssecret
# sally = sallyssecret
增加帳號:
[users]
#harry = harryssecret
#sally = sallyssecret
test = test
六、初始化導入
下面就是將我們的數據(項目)導入到這個版本庫,以后就由版本庫管理我們的數據。我們的任何改動都回被版本庫記錄下來,甚至我們自己丟失、改錯數據時版本庫也能幫我們找回數據。
比如,我在 d:\wwwroot 下有個 guestbook 文件夾,里面存放的是我編寫的留言簿程序。在此文件夾上“右鍵 – TortoiseSVN – Import…”,在彈出對話框的“URL of repository”輸入“svn://localhost/repos1/guestbook”。在“Import message”輸入“導入整個留言簿”作為注釋。
點 OK 后要求輸入帳號。我們在用戶名和密碼處都輸入 test。完成后 guestbook 中的內容全部導入到了 svn://localhost/svn/repos1/guestbook。
我們看到在 e:\svn\repos1 沒有任何變化,連個 guestbook 文件夾都沒有建立,唯一的變化就是 e:\svn\repos1 容量變大了。實際上我們源 guestbook 中的內容已經導入 repos1 版本庫了,源 guestbook 文件夾可以刪除了。
需要注意的是,這一步操作可以完全在另一臺安裝了 TortoiseSVN 的客戶機上進行。例如運行 svnserve 的主機的 IP 是 133.96.121.22,則 URL 部分輸入的內容就是“svn://133.96.121.22”。
七、基本操作流程
1、取出(check out)
取出版本庫到一個工作拷貝:
來到任意空目錄下,比如在 f 分區建立一個空文件夾 f:\work。“右鍵 – SVN Checkout”。在“URL of repository”中輸入“svn://localhost/svn/repos1/guestbook”,這樣我們就得到了一份 guestbook 中內容的工作拷貝。
2、存入(check in)/ 提交(commit)
在工作拷貝中作出修改并提交:
在 guestbook 工作拷貝中隨便打開一個文件,作出修改,然后“右鍵 – SVN Commit…”。這樣我們就把修改提交到了版本庫,版本庫根據情況存儲我們提交的數據。
在修改過的文件上“右鍵 – TortoiseSVN – Show Log”,可以看到對這個文件所有的提交。在不同的 revision 條目上“右鍵 – Compare with working copy”,我們可以比較工作拷貝的文件和所選 revision 版本的區別。
以上是“SVN 服務器如何配置”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注丸趣 TV 行業資訊頻道!