SVN

Win7配置SVN詳細步驟(服務器和客戶端)

下載並安裝服務器端SVN

下載地址:http://subversion.apache.org/packages.html根據操作系統下載相應版本(Setup-Subversion).默認安裝目錄可爲: D:\Program Files\Subversion

下載並安裝客戶端SVN
下載地址: http://tortoisesvn.net/downloads.html 根據操作系統下載相應版本(TortoiseSVN).默認安裝目錄可爲: D:\Program Files\TortoiseSVN

創建SVN
D盤創建文件夾MySVN(可自由命名),打開文件夾à右鍵TortoiseSvnàCreate Repository Here

修改SVN庫配置及新增用戶
Repository創建完畢後會在目錄下生成若干個文件和文件夾,conf目錄是用來設置管理的目錄;db目錄就是所有版本控制的數據文件;hooks目錄放置hook腳本文件的目錄;locks用來放置Subversion文件庫鎖定數據的目錄, 用來追蹤存取文件庫的客戶端;format文件是一個文本文件,裏面只放了一個整數,表示當前文件庫配置的版本號。

 

 


打開/conf/目錄,

一般情況下,我們將通過驗證用戶/密碼方式來允許客戶端的操作。

打開conf文件下的svnserve.conf文件,按圖中所標的對12行,20行進行修改(將訪問模式設爲用戶密碼訪問),相關含義見文件中的說明:

wKioL1RjgEehRI0CAAIVBHtLUwE154.jpg

打開svnserve.conf找到一下兩句:
# [general]
# password-db = passwd
去之每行開頭的#,其中第二行是指定身份驗證的文件名,即passwd文件

同樣打開passwd文件,將
# [users]
# harry = harryssecret  
# sally = sallyssecret

Joklin=Joklin

Jal=Jal

開頭的空格也要去掉
這幾行的開頭#字符去掉,這是設置用戶,一行一個,存儲格式爲“用戶名 = 密碼”,如可插入一行:admin = admin888,即爲系統添加一個用戶名爲admin,密碼爲admin888的用戶

關於authz的分組以及各組權限設定例子:

內部分組:

[groups]

admin=Joklin,Jal

#管理者adminsvn

Non=non

對各個目錄進行權限設定

[/]

Joklin=rw

Jal=rw

*=r

 

[/public]

*=rw


啓動SVN服務

D:\Program Files\Subversion\bin(SVN服務器端安裝目錄)文件夾下新建svnSetup.bat,內容爲

sc create svnserve binpath= "D:\Program Files\Subversion\bin\svnserve.exe --service -r d:\MySVN" depend= Tcpip start= auto

sc start svnserve

pause

其中: binpathSVN服務器端目錄d:\MySVNSVN庫目錄

運行(或以管理員身份運行),會新創建一個服務名爲:svnserver,可通過運行services.msc查看,將其設置自動運行(有時候需要重啓電腦)  

安裝VS Studio Svn插件
插件主要有兩種:

1. VisualSVN(需購買): http://www.visualsvn.com/visualsvn/

2. TortoiseSVN(開源免費,但需先註冊才能下載): http://ankhsvn.open.collab.net/

問題

1. 目標機器積極拒絕很大原因是[步驟5]的問題,請先確認是否有svnverver服務存在,並且已自動啓動.

 CentOS:

 yum install subversion (SVN服務器)


配合類似花生殼之類的域名軟件可實現動態域名遠程連接,具體方法爲:

1 在花生殼網註冊賬號

2 在路由器上的動態DNS上登錄花生殼賬號

3 在路由器的虛擬服務器(或DMZ區)上將你的服務器的IP(內網)設定爲DMZ服務器

4 設置端口映射,SVN端口一般爲3690,映射外部網絡使用3690訪問內網時,轉接到DMZ服務器即可


創建版本庫:
終端輸入:svnadmin create [路徑]
該路徑可以是相對路徑,例如,當前在home/user/svn/目錄下,輸入svnadmin create myproject,則該版本庫會被創建在home/user/svn/目錄下,新建一個文件夾名爲myproject,其中便是版本庫的文件了。


將文件導入版本庫:
終端輸入:svn import [源路徑] [目標版本庫路徑] -m [日誌信息]
源路徑可以是相對路徑,導入時會遞歸導入源路徑下的所有文件和文件夾,目標版本庫路徑需要絕對目錄(反正我試驗是這樣的),例如版本庫的目錄是:home/user/svn/myproject/。則應該這樣寫:file:///home/user/svn/myproject/
例如將當前目錄導入版本庫myproject:
svn import . file:///home/user/svn/myproject -m "導入文件"
啓動:

svnserve -d -r /home/user/svn/myproject -m ‘導入文件’



目錄同步:

從版本庫導出:
導入後原文件並未被納入版本管理,若想獲得受版本控制的文件,就需要從版本庫導出
終端輸入:svn co [版本庫路徑] [導出目標路徑]
例如將myproject庫中的文件導出到當前目錄:svn co file:///home/user/svn/myproject .

#!/bin/sh

export LANG="zh_CN.UTF-8"

svn update /media/htdocs/ --username admin --password admin

如果文件夾是空的,

可以先checkout文件夾,修改post-commit  chmod 755

啓動,提交即可

  如果文件夾內有內容

先把文件夾內容複製出來,然後清空文件夾,,接着修改post-commit chmod 755

import被複制的文件,,,checkout到指定文件夾,即可達到同步



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章