本格堅守四不一沒有政治主張:不知道、不清楚、不瞭解、不明白、沒有我的事!
[ start | index | login ]

試用 Subversion

Created by Ada. Last edited by Ada, 3 years and 9 days ago. Viewed 1,342 times. #10
[diff] [history] [edit] [rdf]
labels
Parent:Subversion
attachments

試用 Subversion

最近為了文件/源碼版本控管的需求,裝了 subversion 1.3.2 來用。

感覺

  1. 不知為何,在 Gentoo 2006.1 on Pentium2 266 上的 Subversion 很容易 hang 住。現在重新編譯 subversion 1.3.2 中,將一些支援選項先關掉看看能否正常。
  2. 反過來說,Windows 上的 Subversion 很穩定,這部份可以參考 嘟嘟老窝 的安裝手記將 svnserve 轉成 service 模式。
  3. Subversion 和 CVS 在版本管控認知上有很大的差異:
    1. CVS: 以檔案為主,每個檔案的修改版次各自獨立控管,所以 release 一個版本時很難知道某個檔案的某版號究竟屬於那個 release 版。
    2. Subversion: 以完整系統為主,所有檔案統一歸到一個修改版次上,在 release 一個版本時會有完全一致的修改版號。
  4. 因版本管控認知差異所造成的使用方式改變:
    1. 對於異動次數多的與次數少的,可能不方便放在同一個檔案庫下。
    2. 多個專案必須對應到多個檔案庫中,否則會造成一版次一直遞增,但實際上線的版本即始未曾改動卻差了幾十、幾百版次。

建立多檔案庫的方法:

為免一個小更動造成各專案/文件之版次變動,因此要建立多檔案庫。
  1. 所有檔案庫必須歸到同一主目錄下,如:SVN_ROOT=/home/svn
  2. 在主目錄下可以再建子目錄,作為檔案庫分類之用
    1. mkdir $SVN_ROOT/docs # 儲放文件檔
    2. mkdir $SVN_ROOT/projects # 儲放專案資料
  3. 利用 svnadmin 建立所需檔案庫
    1. svnadmin create $SVN_ROOT/docs/document1 # 第一份文件庫
    2. svnadmin create $SVN_ROOT/docs/document2 # 第二份文件庫
    3. svnadmin create $SVN_ROOT/projects/project1 # 第一份專案庫
    4. svnadmin create $SVN_ROOT/projects/project2 # 第二份專案庫
  4. 將 svnserve 的 --root 參數指向 $SVN_ROOT 上, Gentoo 上是編緝 /etc/conf.d/svnserve 這個檔
    SVNSERVE_OPTS="--root=/home/svn"
  5. 設定 $SVN_ROOT 目錄的擁有者,此例是指派給 svn 用戶
    chown -R svn:svn $SVN_ROOT
  6. 設定一下 svnserve 執行時的身份(配合 $SVN_ROOT 的擁有者身份),同樣編輯 /etc/conf.d/svnserve 檔
    1. SVNSERVE_USER="svn"
    2. SVNSERVE_GROUP="svn"
  7. 啟動 svnserve 吧!
    /etc/init.d/svnserve start
  8. 如果是 Windows 平台的話,那檔案權限設定的部份可以跳過。

Subversion 的權限控制

  1. 請參閱 >>Subversion的权限控制,先讓所有的檔案庫可以參照到同一份 authz 及 passwd 。在 Windows 上可以 copy 方式統一所有設定檔;在 Linux 上則乾脆用 soft link 比較省事 (這麼做是否有問題還待測試,原因是實際操作時總是發現 svnserve 會 hang 住)
  2. authz 這個檔案的設定是為了賦予各檔案庫不同的權限,以 [name:path] 方式對檔案庫 (name) 的路徑 (path) 進行區分。其中 name 是檔案庫相對於 $SVN_ROOT 的路徑;path 則是相對於檔案庫本身的子目錄。
  3. 以 $SVN_ROOT/docs/document1 這個檔案庫來說,對應的的設定方式就是 [docs/document1:/];若是要設定到檔案庫下的某個子目錄時,就變成 [docs/document1:/rfp] 或 [docs/document1:/proposal] 分別表示 document1 檔案庫下的 rfp 目錄或 proposal 目錄。

Windows 平台補充

2006-11-13 補充

  • 如果在 Linux 平台上操作 svn 時會出現系統 hang 住的情形時,請檢查一下 dev-libs/apr ( >>Apache Portable Runtime Library ) 是否編入 urandom 支援(Gentoo 預設是不開啟的),若未編入的話請重新編譯並加入此選項。

參考資料:

  1. 嘟嘟老窝:>>Subversion安装手记
  2. Subversion 中文站:>>Subversion快速入门教程
  3. Subversion 中文站:>>Subversion的权限控制,這是建立多重檔案庫的重要參考資訊。
no comments | post comment
【搜尋】

【求助】

  1. 如何指定格式化的文字
  2. 如果字太小
【SnipSnap 強化方案】
>>SnipIt 誕生
>>功能討論
>>功能確認

< September 2010 >
SunMonTueWedThuFriSat
1234
567891011
12131415161718
19202122232425
2627282930

【RSS 訂閱】




【雜想分類區】
美食小吃
生活雜想
職場遭遇戰
休閒娛樂
台北居、大不易
錯誤正在橫行中
廣告異聞錄
神秘事件簿
電影
健康管理
資訊電腦
科高地球
手機應用
新聞馬後炮
動漫世界
管理眾人之事
專案管理
歌曲歌詞
嘸爽啦!
部落格記錄
惡搞裝笨耍白爛
歧視非IE用戶之網頁
關於我
CSS
RSS

【與 Ada 聯絡】

【有趣的 Blog】
>>什麼都破,什麼都爛,什麼都不奇怪
>>酪梨壽司的日記
>>去吧!錯誤特攻隊!
>>隨裕而安
>>荒謬大觀
>>網路黑貓
>>瑞克梅添涼 DALIREAL
>>鳥毅的blog
>>潛艦 - >>反垃圾信
>>窮留學生懶人食譜
>>約耳談軟體

【網路貼紙】
XHTML 1.0 validated CSS validated
RSS 2.0 validated Powered by SnipSnap
Powered by Gentoo Linux
網站使用 UTF-8 編碼 網站所在地-台灣
Onion Club 洋蔥酷樂部 Powered By PostgreSQL
我是台灣人

【網路同盟】
怠墮管理者同盟

【PCDVD 七八區 RSS】




【PCDVD 疑雜區 RSS】




【網路串連】











【參訪團】

snipsnap.org | Copyright 2000-2002 Matthias L. Jugel and Stephan J. Schmidt