1.安裝svn-1.4.4-setup.exe
2.創建一個目錄作爲版本倉庫:如c:\snv
3.對版本倉庫目錄進行初始化:svnadmin create c:\svn
4.啓動版本服務器:svnserve -d -r c:\svn
5.將文件夾導入到版本倉庫中去(d:\test 目錄中):svn import svn://localhost
需要建立環境變量:SVN_EDITOR notepad
或者svn import svn://localhost -f -c:\log.log 日誌文件
6.認證失敗?
在c:\svn\conf\svnserve.conf 修改配置(默認是匿名用戶只有read)
anon-access = read 下面加入一行
anon-access = write
ok了 重啓服務 再次提交ok
7.我們在版本倉庫中創建一個虛擬目錄project2
svn mkdir svn://localhost/project2
8.我們再次提交一個文件夾放置在版本服務的虛擬目錄project2中(d:\test2 目錄中 包含test。txt)
svn import svn://localhost/project2
9.從svn中檢出project2(d:\checkout 中)
svn checkout svn://localhost/project2
10.修改test.txt內容 並提交:svn commit test.txt
11.如果文件鎖定 可以用 svn cleanup 命令解鎖
12.刪除test.txt 通過update命令重新獲取:svn update test.txt
svn 權限
13.我們希望可以掌控svn的權限
anon-access = read
anon-access = write
註釋掉。這樣就不可以匿名修改了,不過還是可以匿名檢出。因爲svn默認是允許匿名檢出的
我們新增一個anon-access = none 這樣匿名檢出也禁止了
14.我們添加認證用戶
將password-db = passwd 的註釋取消
打開conf下的passwd文件
[users]
# harry = harryssecret
# sally = sallyssecret
按此格式分別鍵入用戶 = 密碼即可
svn+apache
svn的權限確實不敢恭維,現在我們將svn和apache進行整合
分別下載svn對應的apache版本
1.apache的安裝 一路next即可
2.將svn安裝目錄bin下的mod_dav_svn.so,mod_authz_svn.so文件 複製到apache目錄下的modules下
修改httpd.conf文件,我這裏是145,146行的註釋去掉
LoadModule dav_module modules/mod_dav.so
LoadModule dav_fs_module modules/mod_dav_fs.so
3.在173行增加我們複製的文件載入
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
4.在文件結尾增加我們的目錄映射
<Location /svn>
DAV svn
SVNPath c:/svn
</Location>
5.重啓apache 我們就可以通過:http://localhost/svn 瀏覽訪問版本庫了(不過沒有任何限制)
6.我們需要在<Location /svn></Location>配置驗證信息
<Location /svn>
DAV svn
SVNPath c:/svn
AuthType Basic
AuthName "Subversion Repository"
AuthUserFile c:/passwords
Require valid-user
</Location>
AuthType表示驗證類型,這裏我們採用BASIC即基本方式,也是最常用的驗證方式。
AuthName表示出現登錄對話框時,窗口的標題名。
AuthUserFile表示用戶登錄信息的存放文件,這裏我們將該文件保存爲E:/passwd/passwords,目前該文件還不存在,不過不要着急,我們稍後就會創建該文件。
Require valid-user 表示只有認證的用戶才能訪問,否則匿名用戶也可以訪問。
7.我們創建登陸信息文件
apache bin目錄下的工具 htpasswd.exe
創建文件 並建立一個用戶
htpasswd –c c:\passwords user1
會讓你輸入密碼 採用的md5加密
htpasswd c:\passwords user2
密碼採用明文
htpasswd -p c:\passwords user3
8.重啓apache服務,我們訪問和瀏覽需要輸入用戶和密碼了
也可以使用svn工具進行管理 不過協議變成http了而不是svn了
9.多版本庫管理,我們將之前的 SVNPath c:/svn 修改爲 SVNParentPath c:\svn
更改後已經無法瀏覽倉庫內容了,
這是因爲之前創建的倉庫都是以svn爲根路徑的,所以一旦將它改成ParentPath後就無法正常訪問了。
實際應用中,我們要import一個項目到SVN上,一般都不會import到根目錄中,而是import到項目特定的目錄中,
這樣當從SVN中檢出時我們也只會檢出特定的項目,而不是將SVN中所有的項目全部檢出來,因爲倉庫中可能有很多個其他項目。
10.我們在svn目錄下創建兩個目錄myproject1。myproject2
svnadmin create c:/svn/myproject1
svnadmin create c:/svn/myproject2
採用SVNParentPath方式,新建倉庫時也並不需要重啓Apache服務器,
因爲SVNParentPath指定的路徑就是倉庫的父目錄,我們可以通過瀏覽器查看剛纔import的項目。
這裏注意地址:http://localhost/svn/project1,如果輸入http://localhost/svn,則無權限訪問,因爲默認情況下我們只能訪問其中的子倉庫。
11.如何允許匿名用戶讀取
httpd.conf中的Require valid-user改爲如下:
<LimitExcept GET PROPFIND OPTIONS REPORT>
Require valid-user
</LimitExcept>
12.我們需要更細緻的權限設置,
SVN倉庫中有很多的子倉庫,每個子倉庫中又有很多目錄和文件,那麼我需要配置以便使某些用戶可以訪問某些倉庫,
即可以讀寫;而另外一些用戶只能讀不能寫,不過這兩種類型的用戶都需要輸入認證信息方能進行操作
將httpd.conf內容修改爲
<Location /svn>
DAV svn
SVNParentPath C:\svn
AuthzSVNAccessFile C:/policy
AuthType Basic
AuthName "Subversion Repository"
AuthUserFile C:/passwords
Require valid-user
</Location>
policy文件內容爲權限信息 如下
[project1:/]
user1=rw
user2=r
user3=
對於project1路徑,user1用戶可讀可寫,而user2用戶只讀,另外的用戶user3不能讀也不能寫。這就定義了SVN倉庫的訪問策略。
這裏也可以通過分組進行定義 如下
[groups]
developers=user1,user2
testers=user3
[project1:/]
@developers=rw
@testers=
[project2:/]
@developers=rw
@testers=rw
13.備份版本庫
svnadmin hotcopy C:\svn E:\backup
使用svn和apache打造版本控制服務器
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章
bat記錄遠程桌面連接登錄信息
jason1982
2019-02-24 12:57:09
Exchange Server 2010 POP3&IMAP設置詳解
lingping
2019-02-23 14:05:54
虛擬化技術--服務器虛擬化
dawei818
2019-02-23 14:05:39
windows 2008 全新仲裁模式
qyh282110204
2019-02-23 14:05:36
軟路由建立PPPOE服務器
ct19871125
2019-02-23 14:04:24
MySQL性能優化的21個最佳實踐
fdb2b
2019-02-23 14:01:03
centos下簡單實現日誌切割,並上傳至日誌服務器。
隨風上升
2019-02-23 13:59:02
iscsi存儲
samplelife
2019-02-23 13:57:35
postdrop: create file maildrop/xxx: Permission denied
lingping
2019-02-23 14:05:54
當您嘗試在 Outlook 中打開或保存電子郵件附件時出現錯誤消息:“無法創建文件
lingping
2019-02-23 14:05:54
連接查詢排序limit(join、order by、limit語句)
fdb2b
2019-02-23 14:01:03