1. 程式人生 > >SVN實用經驗貼(對剛進公司的新人很有幫助哦!)

SVN實用經驗貼(對剛進公司的新人很有幫助哦!)

1,軟體下載 
下載Subversion伺服器程式。 
到官方網站的下載二進位制安裝檔案,來到二進位制包下載部分,找到 Windows NT, 2000, XP and 2003部分,然後選擇Apache 2.0 或者 Apache 2.2,這樣我們可以看到許多下載的內容,目前可以下載Setup-Subversion-1.5.3.msi 。 
下載Subversion的Windows客戶端TortoiseSVN。 
TortoiseSVN是擴充套件Windows Shell的一套工具,可以看作Windows資源管理器的外掛,安裝之後Windows就可以識別Subversion的工作目錄。 
官方網站是TortoiseSVN ,下載方式和前面的svn伺服器類似,在Download頁面的我們可以選擇下載的版本,目前的最高穩定版本的安裝檔案為TortoiseSVN-1.5.5.14361-win32-svn-1.5.4.msi。

2,伺服器和客戶端安裝 
伺服器安裝,直接執行Setup-Subversion-1.5.3.msi ,根據提示安裝即可,這樣我們就有了一套伺服器可以執行的環境。
安裝TortoiseSVN,同樣直接執行TortoiseSVN-1.5.5.14361-win32-svn-1.5.4.msi按照提示安裝即可,不過最後完成後會提示是否重啟,其實重啟只是使svn工作拷貝在windows中的特殊樣式生效,與所有的實際功能無關,這裡為了立刻看到好的效果,還是重新啟動機器。

3,建立版本庫(Repository)
執行Subversion伺服器需要首先要建立一個版本庫(Repository),可以看作伺服器上存放資料的資料庫,在安裝了Subversion伺服器之後,可以直接執行,如: 

svnadmin create D:\svndemo\repository
就會在目錄D:\svndemo\repository下建立一個版本庫。 
我們也可以使用TortoiseSVN圖形化的完成這一步: 
在目錄D:\svndemo\repository下"右鍵->TortoiseSVN->Create Repository here...“, 然後可以選擇版本庫模式, 這裡使用預設即可, 然後就建立了一系列目錄和檔案。 

4,配置使用者和許可權 
來到D:\svndemo\repository\conf目錄,修改svnserve.conf: 
# [general] 
# password-db = passwd 

改為: 
[general] 
password-db = passwd 
然後修改同目錄的passwd檔案,去掉下面三行的註釋: 
# [users] 
# harry = harryssecret 
# sally = sallyssecret 
最後變成: 
[users] 
harry = harryssecret 
sally = sallyssecret 
在passwd檔案中,“=”前的字元就是使用者名稱,後面的就是密碼。還要注意“[users]”前面的註釋“#”一定要刪除掉。
5,執行獨立伺服器 
在任意目錄下執行: 
svnserve -d -r D:\svndemo\repository 我們的伺服器程式就已經啟動了。注意不要關閉命令列視窗,關閉視窗也會把svnserve停止。
6,初始化匯入 
來到我們想要匯入的專案根目錄,在這個例子裡是D:\svndemo\initproject,目錄下有一個readme.txt檔案: 

右鍵->TortoiseSVN->Import... 
在URL of repository輸入“svn://localhost/trunk” 
在Import Message中輸入你的日誌資訊
完成之後目錄沒有任何變化,如果沒有報錯,資料就已經全部匯入到了我們剛才定義的版本庫中。 
需要注意的是,這一步操作可以完全在另一臺安裝了TortoiseSVN的主機上進行。例如執行svnserve的主機的IP是133.96.121.22,則URL部分輸入的內容就是“svn://133.96.121.22/trunk”。
7,基本客戶端操作 
取出版本庫到一個工作拷貝: 
來到任意空目錄下,在本例中是D:\svndemo\wc1,執行右鍵->Checkout,在URL of repository中輸入svn://localhost/trunk,這樣我們就得到了一份工作拷貝。 

在工作拷貝中作出修改並提交: 
開啟readme.txt,作出修改,然後右鍵->Commit...,這樣我們就把修改提交到了版本庫,我們可以執行。 

察看所作的修改: 
readme.txt上右鍵->TortoiseSVN->Show Log,這樣我們就可以看到我們對這個檔案所有的提交。在版本1上右鍵->Compare with working copy,我們可以比較工作拷貝的檔案和版本1的區別。 
把svnserve做為windows服務自動啟動:
sc create svnservice  binPath= " C:\Program Files\Subversion\bin\svnserve.exe --service -r D:\svndemo\repository " DisplayName= "SvnService" depend= Tcpip start= auto

如何僅僅check out 我們想要的一個目錄或者檔案?1、使用TortiseSVN客戶端 ,右鍵選單中的“svn checkout”檢出logo.jpg檔案的上級目錄images資料夾,在檢出視窗中的“檢出深度”處要選擇“僅此項”,這樣檢出來才是一個空目錄,本地命名為temp。 
2、然後在temp資料夾上點右鍵,在彈出的TortiseSVN右鍵選單中選擇“檢查更新”,在“檢查更新”視窗中點選“檢查版本庫”,會列出該“images”目錄下的所有檔案。 
3、在“檢查更新”視窗中選中要檢出的“logo.jpg”檔案,點右鍵,在右鍵選單中選擇“更新”,即可將該檔案單獨檢出。 
方法2:命令列
1、檢出目錄images 
svn co --depth=empty http://www.iusesvn.com/project1/images
images_work_dir
這樣就在本地形成了一個工作拷貝目錄images_work_dir 
2、進入images_work_dir目錄,單獨更新logo.jpg 
svn up logo.jpg
這樣,我們就單獨檢出了logo.jpg,後面就可以對這個檔案進行修改、提交等操作。

如何檢視各個版本的差異?
先check out一個資料夾下來到本地(假設這個資料夾的內容好幾次被修改了)。在這個資料夾右鍵單擊->TortoiseSVN->ShowLog。出現一個列表,顯示所有被修改的檔案版本。
右鍵選中一個版本->Brose repository然後選中一個檔案
在最下面的檔案筐中右鍵->show changes
也可以在最上面的筐中右鍵->compage with previous reversion
如何過濾掉不想提交到svn伺服器的檔案或者資料夾?
右鍵->setting在ignore pattern中填寫類似*.jpg(這樣就不會提交圖片了) *.swf *.bat */images/*( 這樣就不會提交images目錄了)