svn

1,軟件下載 
下載Subversion服務器程序Setup-Subversion-1.5.3.msi 。 
下載Subversion的Windows客戶端TortoiseSVN我用的是 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停止。
你也可以把svn服務器端註冊成windows的服務,開機啓動。
sc create svnservice  binPath= "C:\Program Files\Subversion\bin\svnserve.exe --service -r D:\svndemo\repository" DisplayName= "SvnService" depend= Tcpip start= auto
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(要注意Checkout和Export的區別,Export是導出,與import相反的意思。而Checkout是從版本庫中檢出當前版本的拷貝),在URL of repository中輸入svn://localhost/trunk,這樣我們就得到了一份工作拷貝。 
正常情況下你會看見這些拷貝上都打上了鉤。
在工作拷貝中作出修改並提交: 
打開readme.txt,作出修改,保存。發現被修改的文件打上了一個紅色的感嘆號。然後在該文件上右鍵->Commit...,最好能在Message處寫上一些有用的信息
。比如修改了什麼內容等。這樣我們就把該文件的修改提交到了版本庫。 
如果你修改了多個文件,在目錄的空白處右鍵->Commit可以把所有修改過的文件提交上去。

察看所作的修改: 
readme.txt上右鍵->TortoiseSVN->Show Log,這樣我們就可以看到我們對這個文件所有的提交。在版本1上右鍵->Compare with working copy,我們可以比較工作拷貝的文件和版本1的區別。 


如何僅僅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目錄了)

最後,說一下使用TortoiseSVN客戶端的一般步驟:
先是右鍵->TortoiseSVN->import導入一個庫,然後是Export把剛剛導入的檢出。當有新的文件加入到本地的時候,要先TortoiseSVN->add
把文件加入版本庫。當對文件有更改的時候,就SVN Commit。最後,可以SVN Update把當前本地和svn服務器上的資料進行更新。
如果你對文件進行了修改,在Commit之前就進行SVN Update操作,那麼你的修改就消失了,和SVN服務器最近的一個版本一致。
用這個一定要小心,別千辛萬苦改好了一個東西點一下就付之東流了!
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章