茫茫網海中的冷日
         
茫茫網海中的冷日
發生過的事,不可能遺忘,只是想不起來而已!
 恭喜您是本站第 1670880 位訪客!  登入  | 註冊
主選單

Google 自訂搜尋

Goole 廣告

隨機相片
F09_380.jpg

授權條款

使用者登入
使用者名稱:

密碼:


忘了密碼?

現在就註冊!

軟工藝術 : [轉貼]簡單 SVN (Subversion , TortoiseSVN)應用及設定

發表者 討論內容
冷日
(冷日)
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
有任何錯誤歡迎指正 感謝

標籤: 記事, 軟體, 雜記

前一個主題 | 下一個主題 | | | |

討論串




Powered by XOOPS 2.0 © 2001-2008 The XOOPS Project|