|
|
茫茫網海中的冷日
發生過的事,不可能遺忘,只是想不起來而已! |
|
恭喜您是本站第 1729462
位訪客!
登入 | 註冊
|
|
|
|
發表者 |
討論內容 |
冷日 (冷日) |
發表時間:2008/3/17 6:00 |
- Webmaster

- 註冊日: 2008/2/19
- 來自:
- 發表數: 15771
|
- [轉貼]簡單 SVN (Subversion , TortoiseSVN)應用及設定
- 簡單 SVN (Subversion , TortoiseSVN)應用及設定
SVN ( Subversion ) 是一套非常好用的 檔案 版本控制 ( Revision control ) 系統 除了可以很方便的追蹤,交換,合併,比對檔案外, 更能保護檔案不會受到一些意外而讓心血的結晶損毀, 也可以讓團隊合作時,更加有效率。
以下簡單介紹 Subversion (Server端) 及 TortoiseSVN (Client端) 在單人工作,及多人工作時的一些設定及用法,希望能幫助更多人上手
1. 在完全個人的環境下,在沒有多人共用及網路的需求下 其實不需要 Subversion 去架設Server ,僅僅使用 TortoiseSVN 即可 可以在自己電腦上進行檔案版本的控制, 不過建議至少要兩顆以上硬碟,並將檔案庫及工作目錄分開放置 假設工作目錄為 C:\MyDocuments ,檔案庫目錄為 D:\SVN 首先先到 TortoiseSVN 的官方網站下載最新版軟體 並且安裝 建立好目錄後,在檔案總管 D:\SVN 當中 按下滑鼠右鍵 選擇 TortoiseSVN ->在此建立檔案庫 選擇原生檔案系統 按下確定 再來到 C:\MyDocuments 按下滑鼠右鍵選擇 SVN取出 (SVN Check Out) 在檔案庫URL中輸入 "file:///D:/SVN" (或是點擊 "..."按鈕直接選取) 按下確定完成第一次的Check Out 之後就可以在 C:\MyDocuments 目錄下進行工作 另外 記得 D:\SVN目錄要備份定時備份
2. 在多人工作或是在公司內、實驗室內做檔案管理時 架一台Server就是必要的工作了 以Windows為例 要架設Server實在是非常簡單 首先先下載 Subversion 並且安裝他 (預設路徑 C:\Program Files\Subversion) 在命令列環境下 下達命令
sc create "svnservice" binpath= "C:\Program Files\Subversion\bin\svnserve.exe
--service --listen-port 5678 --listen-host 0.0.0.0 -r D:\SVN" displayname= "SVN Service" depend= Tcpip
可以將 SVN 設為 Windows 的 Service 讓他每次開機自動執行 並且指定 D:\SVN 為預設的檔案路徑 以及指定 5678 為網路連線的Port (請自行更換) 到 控制台 -> 系統管理工具 ->服務 當中 找到"SVN Service" 把他設為自動 並且啟動之後 就可以開始使用 (請確定防火牆是否開啟) 如果 D:\SVN 還沒建立檔案庫 請使用 (1) 的方式 或是在命令列鍵入以下指令來建立檔案庫
svnadmin create D:\SVN --fs-type fsfs
而Client端的設定一樣 要先下載 TortoiseSVN 並安裝後 在你所選擇的工作目錄中 按下滑鼠右鍵選擇 SVN取出 (SVN Check Out) 並在檔案庫URL中輸入 svn://ServerIp:5678/ 其中 ServerIP 為 你所架設SVN Server的IP (或是Domain Name)
3. 對於檔案庫 可以對他進行權限的控管 首先打開檔案庫中 conf目錄下的 svnserve.conf檔案 拿掉命令前的 # 結果為以下所視
[general]
anon-access = none #表示匿名者存取不能 若改為read表示可讀不可寫入
auth-access = write #表示登入者可以存取
password-db = passwd #存放帳號密碼的檔案
authz-db = authz #可對使用者分群組 以及對檔案庫中的目錄進行控管(非必要)
再開啟 檔案 passwd 並且依照 "帳號" = "密碼" 的原則輸入即可 請注意 這裡的密碼是明文 (和Apache的不一樣)
如要分群組 如要分群組請再打開 檔案 authz 以類似以下的方式進行設定 (請不要使用中文 XD)
[groups]
群組 = 使用者
群組1 = 使用者1,使用者2
群組2 = 使用者1,使用者3
群組3 = 使用者3,使用者4
[/]
@群組 = rw #群組擁有整個資料庫的存取權限
* = #其他人不能存取
[/目錄]
@群組1 = rw
使用者3 = 使用者4 = rw
* = r
4. 以上介紹的是所謂的單一檔案庫的方式 其實也可以共存多個檔案庫 例如 將 D:\SVN設為SVN Server的跟目錄 不過不在這裡建立檔案庫 在 他的子目錄建立檔案庫 例如 D:\SVN\Proj1 在客戶端存取時一樣只要加上路徑Proj1即可 建立多個檔案庫的優點是可以分散風險 避免當檔案庫損毀的危險 另外也可以使的檔案版本編號成長的慢一些 ^^ 缺點就是 設定跟權限都要各自維護
5. 這是我使用SVN幾年來的一點點心得 不要將一些不該存的檔案放到檔案庫中 以程式設計為例 不要將*.o *.obj *.dll *.exe *.tmp等檔案上傳 這些除了有些是暫存檔外 有些可以利用其他檔案 經由簡單步驟所產生(編譯) 但是 相對的 *.sln *.vcproj (Visual Studio的專案檔)或是其他專案檔 就一定要保留 才能讓其他人也利用檔案庫中有的檔案 快速的產生結果 另外 也不需要將檔案壓縮起來之後 在放入檔案庫 檔案庫會自動幫你做檔案的壓縮 壓縮起來反而不利做版本之間的比對
要大幅度修改文件內容 或是要將原文件修改到另外一個用途 不需要先將原文件複製到另一個文件夾或是加一個.bak做區隔 反而浪費容量 也不易管理 直接使用SVN提供的 分支(branch) 或是 標記(tag) 功能即可
如果有一個文件會有多人要修改 尤其是 Word , Excel 這種文件 (存成二進位檔 非明文 的文件) 在開始修改前 要先將他鎖定 等修改完之後在解除 因為這類檔案 不像程式碼 或是一般txt 存成明文的文件 可以簡易的進行比對 分析差異 當你在修改時 有其他人已經修改並上傳 就會非常麻煩....
修改前最好先進行 更新 (Update)的動作 讓自己要修改的版本是最新的 修改完成後(測試後)也要馬上進行 上傳修改(Commit)的動作
6.
SVN本身還可以搭配Apache使用http / https 的協定 或是搭配 SSH 軟體 使用安全的加密通道來存取 不過這屬進階設定 就不在這裡討論 Subversion官方網站 http://subversion.tigris.org/ TortoiseSVN官方網站 http://tortoisesvn.tigris.org/ SVN Book(英文) http://svnbook.red-bean.com/nightly/en/index.html SVN Book(中譯) http://svn.stu.edu.tw/svnbook/book.html
jedi.org 旅行必備、居家良伴、送禮自用兩相宜的「版本控制系統」http://jedi.org/blog/archives/004784.html Jserv's blog 淺談版本控制系統 http://blog.linux.org.tw/~jserv/archives/001148.html
Seety 利用 SVN 進行版本控制 http://www.seety.org/technote/programming/svn_intro
7. 以上文章歡迎轉載 請保留文章完整並註明出處 JoStudio 有任何錯誤歡迎指正 感謝 標籤: 記事, 軟體, 雜記
|
|
|
討論串
|