Collabnet 配置及創建用戶

admin/admin
guest/guest

1,下載CollabNetSubversion-server-1.6.11-3.win32.exe,http://www.collab.net/downloads/subversion/redhat.html
2,安裝軟件
3,進入cmd窗口
>svnadmin create G:/rep
用svnadmin命令創建名爲rep的倉庫
>htpasswd -m G:/rep/user.txt admin
用htpasswd命令創建用戶admin,同時生成密碼認證文件,c參數爲create,m參數爲MD5加密方式
>htpasswd -m G:/rep/user.txt  guest
用htpasswd命令創建用戶guest,注意,如果此時還用c參數會覆蓋之前創建用戶及文件
5,G:/svn_repository下新建文本文件access.txt,輸入以下內容:
[/]
admin = rw
guest = r
* = 
6,在文件F:/Program Files/CollabNet/Subversion Server/httpd/conf/httpd.conf的下面兩行
LoadModule dav_module         modules/mod_dav.so
LoadModule dav_svn_module     modules/mod_dav_svn.so
後新增一行:
LoadModule authz_svn_module    modules/mod_authz_svn.so
7,文件最後信息如下
<Location /svn>
   DAV svn
   SVNParentPath G:/svn_repository
</Location>

修改爲:
<Location /svn>
   DAV svn
   SVNPath G:/rep
   AuthType Basic
   AuthName "Subversion Repository"
   AuthUserFile "G:/rep/user.txt"
   AuthzSVNAccessFile "G:/rep/access.txt"
   Require valid-user
</Location>

注意藍色字體部分不是筆誤。


8,重啓Apache服務,IE打開http://localhost/svn/,輸入admin/admin,看到下面信息
svn - Revision 0: /
--------------------------------------------------------------------------------
Powered by Subversion version 1.6.11 (r934486).

說明配置已經成功。

9,要方便地使用Subversion,還用安裝一個客戶端TortoriseSVN
TortoiseSVN-1.6.8.19260-win32-svn-1.6.11.msi 下載地址http://tortoisesvn.net/downloads

 

參考:
1,在windows下安裝collabnet subversion server 1.6.5 http://www.scmlife.com/dp-bbsthread-20219.html

 

問題:
1,怎樣才能把svn版本庫中的某一個文件或目錄永久的刪除
43.如何徹底刪除一個目錄或者文件
[案例一]
例如:當前庫的最新版本是46,我在第46個版本上,更加了一個5M的文件,名字爲FY07 GDCC Training_Customer_Satisfaction_Survey v1.0 (Internal Trainer).rtf
現在我要把這個新增加的5M文件徹底的刪除,不想讓它存在庫中佔用空間
(1)用svn log -v命令查看添加文件時的Path。或者使用tortoisesvn之類的客戶端工具查看也可以
C:/myhouse/SCM_Home/SVN_HOME/localtest/docs/general>svn log -v "FY07 GDCC Training_Customer_Satisfaction_Survey v1.0 (Internal Trainer).rtf"
------------------------------------------------------------------------
r46 | zhangjia | 2007-09-23 10:40:34 +0800 | 3 lines
Changed paths:
   A /docs/general/FY07 GDCC Training_Customer_Satisfaction_Survey v1.0 (Internal Trainer).rtf

FY07 GDCC Training_Customer_Satisfaction_Survey v1.0 (Internal Trainer).rtf

delete for ever
------------------------------------------------------------------------
(2)結果得到添加的路徑爲/docs/general/FY07 GDCC Training_Customer_Satisfaction_Survey v1.0 (Internal Trainer).rtf
(3)把整個庫先lock住,防止在此過程中有人繼續修改
當然如果不lock也是可以了,只不過當你把所有的內容導入到新庫中之後,還要用dumpfilter把舊庫中
新增部分也導入到新庫中。爲了避免不必要的麻煩,所以我們需要lock
(4)導出舊庫中的所有版本
svnadmin dump C:/myhouse/external/SVNRepos/svn > svns.dmp
(5)對導出的舊庫中的文件做過濾,剔除我們不用的那個文件的PATH
type svns.dmp | svndumpfilter exclude "docs/general/FY07 GDCC Training_Customer_Satisfaction_Survey v1.0 (Internal Trainer).rtf" > filter.dmp
(6)重新創建一個新的庫,版本最好和以前的相同。而且不要做任何的修改
svnadmin create C:/myhouse/external/SVNRepos/svndump
(7)把我們過濾後的那個導出文件,導入到新的庫中
svnadmin load C:/myhouse/external/SVNRepos/svndump < filter.dmp
(8)檢查新庫中的文件和版本狀態
[案例二]
當前庫的最新版本是48,我在第46個版本上,更加了一個5M的文件,名字爲FY07 GDCC Training_Customer_Satisfaction_Survey v1.0 (Internal Trainer).rtf
現在我要把在第46個版本上新增加的5M文件徹底的刪除,不想讓它存在庫中佔用空間
(1)用svn log -v命令查看添加文件時的Path。或者使用tortoisesvn之類的客戶端工具查看也可以
C:/myhouse/SCM_Home/SVN_HOME/localtest/docs/general>svn log -v "FY07 GDCC Training_Customer_Satisfaction_Survey v1.0 (Internal Trainer).rtf"
------------------------------------------------------------------------
r46 | zhangjia | 2007-09-23 10:40:34 +0800 | 3 lines
Changed paths:
   A /docs/general/FY07 GDCC Training_Customer_Satisfaction_Survey v1.0 (Internal Trainer).rtf

FY07 GDCC Training_Customer_Satisfaction_Survey v1.0 (Internal Trainer).rtf

delete for ever
------------------------------------------------------------------------
(2)結果得到添加的路徑爲/docs/general/FY07 GDCC Training_Customer_Satisfaction_Survey v1.0 (Internal Trainer).rtf
(3)把整個庫先lock住,防止在此過程中有人繼續修改
(4)導出舊庫中的所有版本
svnadmin dump C:/myhouse/external/SVNRepos/svn > svns2.dmp
(5)對導出的舊庫中的文件做過濾,剔除我們不用的那個文件的PATH
type svns2.dmp | svndumpfilter exclude "docs/general/FY07 GDCC Training_Customer_Satisfaction_Survey v1.0 (Internal Trainer).rtf" > filter2.dmp
(6)重新創建一個新的庫,版本最好和以前的相同。而且不要做任何的修改
svnadmin create C:/myhouse/external/SVNRepos/svndump2
(7)把我們過濾後的那個導出文件,導入到新的庫中

導入過程中出現提示:
...
<<< Started new transaction, based on original revision 46

------- Committed revision 46 >>>

<<< Started new transaction, based on original revision 47
     * editing path : src/build/build.xml ... done.

------- Committed revision 47 >>>

<<< Started new transaction, based on original revision 48
     * editing path : src/build/scmbuild.xml ... done.

------- Committed revision 48 >>>
顯然46號版本已經保留了,但是我們要刪除的那個文件也同樣被刪除了
(8)檢查新庫中的文件和版本狀態
[案例三]
當前庫的最新版本是60,我在第50個版本上,更加了一個5M的文件,名字爲FY07 GDCC Training_Customer_Satisfaction_Survey v1.0 (Internal Trainer).rtf;
同時修改了10個源代碼文件;刪除了2個源代碼文件
現在我要把在第46個版本上新增加的5M文件徹底的刪除,不想讓它存在庫中佔用空間
考慮一下,如果按照我們案例中提供的方法是否能夠做到保留歷史,而刪除物理文件?
並說明理由?
[總結]
刪除文件確實能夠通過我們上述的提供的方法解決,但是我們也看到如果當庫中的版本很多,容量很大的時候
每次當我們導出和導入的時候,花費的時間比較長,而且使用的空間也比較大。我們建議,
所有的導入和導出以及過濾的操作儘量在同一塊磁盤或者扇區上執行,這樣速度比較快;當然你要保證你的
扇區的容量能夠容納原來倉庫至少2倍(2~4倍)的大小((1)原始的庫,(2)導出的dump,(3)導出的filter dump,(4)導入的庫)
當然你也可以copy到別的扇區,磁盤或者機器上運行,只要保證環境一致就可以

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