2007-10-17

[UNIX]Subversion


  • 作業系統:FreeBSD 6.2-Release

  • 軟體:Subversion 1.4.4

  • 備註:位於本機的 VMWare Workstation


前言:本來 Subversion 這個軟體,是我一直很有興趣的東西,可是,因為一直沒有需求,所以也不太用,後來,在股長的建議之下,便開始研究起來。


安裝:其實裝軟體在 FreeBSD 其實非常的簡單,只要 cd /usr/ports,然後找到相關的軟體目錄下:make all install clean 就收工了。



# cd /usr/ports/devel/subversion
# make all install clean
如果還需要 perl 支援的話
# cd /usr/ports/devel/subversion-perl
# make all install clean
如果需要 python 支援的話
# cd /usr/ports/devel/subversion-python
# make all install clean
如果需要 ruby 支援的話
# cd /usr/ports/devel/subversion-ruby
# make all install clean

設定系統啟動檔:


# pw groupadd -n svn -g 3690
# pw useradd -n svn -u 3690 -d /home/special/svn -g svn -m -s /usr/sbin/nologin
# pw lock svn
# vim /etc/rc.conf

加入以下三行
svnserve_enable="YES"
svnserve_flags="-d -T --listen-host=192.168.126.129 --listen-port=3690"
svnserve_data="/home/special/svn"

# /usr/local/etc/rc.d/svnserve start


設定 Repository:


# cd /home/special/svn
由於需要依照各科的狀況分割 Repository,所以建議以處組別等方式建立目錄,由於現在是乙組當單位,所以,目前就以 00~12 去分割,分別是「處長室」、「資一」~「資四」、「系統」、「OA」、「PA」、「機器作業」、「資料控制」等組,然後以各組內的程式為單位的 Repository。

# mkdir 00 01 02 03 04 05 06 07 08 09 10 11 12
# cd 09
# sudo -u svn svnadmin crearte VPDN
# cd VPDN/conf
# vim svnserve.conf

[general]
anon-access = none
auth-access = write
password-db = passwd
authz-db = authz
realm = VPDN Account Management System

# vim passwd

[users]
# 帳號密碼格式
# 登入帳號 = 明碼密碼
# ex. user = 1234
# 登入帳號就是 user,登入密碼就是 1234
userid = plain_text_password

# vim authz

[groups]
# 格式:
# group 名稱 = 使用者列表
# 而使用者列表為 passwd 檔案中的登入帳號
# ex.
# group = user1, user2
group = userlist

# 目錄權限設定
# [/dir1/child_dir1]
# @group = [r|w]
# userid = [r|w]
[/]
@group1 = rw
@group2 = r
* =
# 表示 group1 的人都可以 r(讀) w(寫)
# 表示 group2 的人都可以 r(讀)
# * 表示其他人什麼事情都不能作



第一次裝的時候,為了測試,我並沒有特別去每個 Project 一個檔案庫,因為我覺得如果只是要測試,特別去瞭解一些東西好像沒什麼必要,可是後來發現,當眾多計畫共用單一 Repository 的時候,版號會非常的混亂而且對很多人來說,其實他並不是太需要瞭解整個 Repository 的版號,可是因為之前沒有太注意去看 Project Managerment 的東西,所以一直有個錯誤的觀念就是 Repository 下面一定沒有辦法分割,不過看完網路上的資料之後,發現其實是可以分割的。

然後接下來就可以使用了。至於 svn client 常用命令,到 Subversion 上找吧~~我就不贅述啦。

沒有留言: