- 論壇徽章:
- 0
|
轉(zhuǎn)自
http://www.blogjava.net/gdhqs/
一、安裝及常用操作
SVN相信大家都有使用過或者聽說過吧?它的好處我這里就不說了,網(wǎng)上介紹多的是。因為是版本控制,所以個人認(rèn)為其設(shè)計的原理不需要懂得太多,只需要了解
常識即可。小弟google了許久,也沒找到一篇介紹快速入門的文章。無奈之下,看了幾篇長篇大論,終于學(xué)了點點的皮毛。下面我將寫一個svn快速入門系
列,因為是快速入門,所以一般只講操作。(這里有些內(nèi)容都是參考 深入淺出系列之二_SubVersion)
首先,我們下載svn安裝文件,輸入網(wǎng)址:
http://subversion.tigris.org
,找到
...more downloads...
,然后找到windows那一塊下載,注意,有兩個版本
Apache 2.0
or
Apache 2.2
,可以選擇和你電腦里面apache服務(wù)器同樣的版本下載。
安裝完成后,可在命令行輸入svn --version查看是否安裝成功,以及在系統(tǒng)變量里查看path是否增加了svn的安裝目錄。如下圖:
![]()
接著,在服務(wù)器端創(chuàng)立創(chuàng)庫(repository)。a.手動在硬盤上創(chuàng)建一個文件夾。
![]()
b.在命令行輸入svnadmin create + 倉庫目錄。 創(chuàng)建版本庫。如圖:
![]()
此時。倉庫所在文件夾會多出幾個文件,說明倉庫創(chuàng)建成功。
SVN此時已經(jīng)在你的電腦里準(zhǔn)備就緒,下面將介紹SVN的幾個常用命令:import ,checkout,commit,update以及mkdir。
在執(zhí)行import,commit,update,mkdir的時候,svn需要記錄操作日志,方法一:在系統(tǒng)環(huán)境變量增加一個SVN_EDITOR變
量,該變量的值取為系統(tǒng)自帶的記事本:notepad。方法二,建立一個log.txt,作為日志。(一般建議用方法二,所以我下面將用方法二)。
為了便于在命令行下的操作,先設(shè)置svn為允許匿名帳號進(jìn)行讀寫的操作:在倉庫的conf目錄下有一個文件svnserve.conf,用記事本打開,可
以看到一行:#anon-access =
read,意思為匿名用戶有讀的權(quán)限。將其前面的注釋符#去掉。這一行即生效。再加上一行:anon-access =
write,賦予匿名用戶寫的操作。如圖:
![]()
首先,啟動服務(wù): svnserve –d –r k:\repository,該命令含義為讓SVN將此目錄作為倉庫,并偵聽客戶端的請求。其中-d的作用為后臺模式,而-r的作用為指定服務(wù)器的倉庫路徑。
![]()
建立新的命令提示符,執(zhí)行mkdir命令在svn創(chuàng)建一個test的虛擬目錄: svn mkdir svn://localhost/test1 –F k:\log.txt 如圖
![]()
接著,創(chuàng)建一個test目錄,里面新建一個text1.txt文件。:
![]()
命令行轉(zhuǎn)到test目錄,執(zhí)行import命令,將test上傳到svn服務(wù)器。
![]()
下面講述checkout命令。
首先新建一個文件夾test2,在命令行轉(zhuǎn)到這個文件夾,執(zhí)行: svn checkout svn://localhost/test1。注意,check操作不需要寫入log
![]()
接著講述commit命令.
如圖,更改checkout下來的text1.txt文件
![]()
在命令行執(zhí)行commit命令: svn commit text1.txt –F k:\log.txt
![]()
最后講述update命令:執(zhí)行svm update text1.txt 取出text1.txt的最新版本。
![]()
到此.svn的基本命令講完了,大家是不是覺得比較麻煩?沒關(guān)系,下一篇將會介紹svn在windows下的操作.
二、window下的操作
上一篇文章介紹了如果用命令行執(zhí)行svn命令,比較繁瑣,下面將介紹在windows下進(jìn)行svn操作。
為了安全著想,一般不允許匿名用戶。所以將repository\conf目錄下的svnserve.conf文件的anon-access =
read和anon-access = write加上#注釋掉,并將password-db =
passwd前面的#去掉。意思為使同目錄下的passwd文件生效。
![]()
在同目錄下的passwd文件里創(chuàng)建用戶:qishan = qishan123 其中等號左邊是用戶名,右邊是密碼。
![]()
注意:在一次登錄后,SVN會將我們的登錄信息保存起來存放在硬盤上的文件中,其存放位置為:C:\Documents and
Settings\[你的登錄系統(tǒng)用戶名] \Application
Data\Subversion,如果想要刪除該信息,只需要將該目錄中的auth文件夾刪除即可。
安裝TortoiseSVN
http://tortoisesvn.tigris.org
的下載地址如下:
http://tortoisesvn.net/downloads
import命令
安裝成功后,新建一個文件夾,里面建一個文件,在次文件夾點擊鼠標(biāo)右鍵,出現(xiàn)TortoiseSVN的命令菜單,然后選擇import命令。將該目錄導(dǎo)入服務(wù)器中。納入svn的管理之下。
![]()
![]()
宿儒服務(wù)器地址及其說明
![]()
import成功!
![]()
checkout命令
新建一個文件夾test4,點擊鼠標(biāo)右鍵,選擇checklou
![]()
輸入要checkout的目錄。
![]()
綠色圖標(biāo)表示文件版本和svn服務(wù)器版本一致.
![]()
修改text2.txt文件,保存后圖標(biāo)變成紅色,表示與服務(wù)器版本不一致.
![]()
![]()
若確認(rèn)修改,使svn服務(wù)器版本的文件和你所修改的文件一直,則需要commit命令
![]()
![]()
![]()
commit成功,圖標(biāo)又變成綠色,說明svn服務(wù)器里文件的版本已經(jīng)更新為和你所修改的一致。
![]()
當(dāng)別人提交修改后的text2.txt后.你原先checkout的是圖標(biāo)變成紅色。
![]()
如果你想更新至svn服務(wù)器最新的版本。這個時候用update命令。
注意:此時應(yīng)該在text2.txt所在的文件夾鼠標(biāo)右鍵點擊svn update
![]()
此時圖標(biāo)將變回綠色,說明你的文件版本和服務(wù)器最新版本一致。
這個時候有個地方需要注意的是,如果你修改文件后,沒有commit,但是想回復(fù)以前的版本,這個時候不能用update,只能刪掉這個文件,重新checkout你想要的版本。
最后講述add命令
在checkout的文件夾里新建一個文件。
![]()
執(zhí)行add命令:
![]()
此時圖標(biāo)變成藍(lán)色,說明此文件是新增的文件,但還沒在服務(wù)器里面更新。
![]()
若要是svn服務(wù)器更新次文件,則對次文件執(zhí)行commit命令。然后文件圖標(biāo)變成綠色。
![]()
![]()
![]()
到此,windows下的svn操作已經(jīng)描述完了。敬請期待下一篇哈!
三、整合Eclipse
相信大部分javaee的開發(fā)人員是用eclipse作為開發(fā)工具的,前兩篇文章寫的是僅有SVN的基本操作,現(xiàn)在這篇文章將會寫SVN如何整合eclipse的。讓大家真正感受到SVN的好處。
我的eclipse版本是Version: 3.4.2。本身沒有內(nèi)置對sub的支持,需要去下載svn插件。
![]()
在
http://subclipse.tigris.org
找到符合自己eclipse版本的插件的下載地址。
![]()
我下載的是
site-1.4.8.zip
。
然后在eclipse下安裝SVN插件。(SVN下載頁面也有安裝的圖解教程。不過我這個版本的和它的稍有不同。)
![]()
點擊ADD Site。
![]()
點擊 Archive。選擇下載的壓縮包。
![]()
還有另外一種更方便的安裝方法。svnclipse網(wǎng)頁上給出了Eclipse update site URL:
http://subclipse.tigris.org/update_1.6.x
我們直接在這里把link輸入,eclipse就會幫我們下載和安裝。(由于我已經(jīng)安裝了,所以它提示已存在完全一樣的插件)
![]()
安裝成功后,重啟eclipse。查看是否有Preferences->Team->SVN,有則說明安裝成功。
![]()
新建一個項目。
![]()
新建一個類,寫上一些代碼。
![]()
在eclipse中打開SVN視圖
![]()
在左邊新建一個資源庫位置
![]()
![]()
回到JAVAEE視圖,將項目import到服務(wù)器服務(wù)器上:鼠標(biāo)右鍵點擊項目->Team->Share Project
![]()
選擇SVN
![]()
使用剛才定位的倉庫
![]()
在SVN視圖里可以看到,項目已經(jīng)導(dǎo)入
![]()
先寫到這里,下一篇將寫一些基本操作。
上一篇寫了在eclipse里如何把project import到svn服務(wù)器里面,這篇將介紹在ecipse里執(zhí)行svn的基本操作。
這個是上次在eclipse里import后的項目截圖:
![]()
發(fā)現(xiàn)出現(xiàn)了問號,意思是unversioned。我們執(zhí)行commit命令。右擊項目-》Team-》提交
![]()
提交后,項目右下方的小圖標(biāo)變成黃色的小瓶子,說明eclipse里面項目的版本和服務(wù)器里面項目的版本一致。如圖:
![]()
既然是版本控制,那僅僅在一個eclipse里面測試svn是沒有意義的。所以我在本機安裝了第二個eclipse模仿同個工作組的其他用戶。
第一個eclipse簡稱為A,第二個eclipse簡稱為B。
如圖,現(xiàn)在B建立svn服務(wù)器連接。
![]()
然后把svn服務(wù)器里面A上傳的項目checkout到B上。
![]()
切換到j(luò)avaee試圖,發(fā)現(xiàn)項目已經(jīng)checkout成功。
![]()
在B里添加一行代碼,commit
![]()
這時候我們看A,它還沒提示版本出現(xiàn)不同,但是代碼還是原來那個。
![]()
這時候我們可以主動去比較A里面的HelloWorld文件和版本庫的最新文件。
![]()
現(xiàn)在版本庫的HelloWorld文件多了一行代碼:
![]()
此時我們在A里面執(zhí)行update命令,將A的項目更新到和版本庫一致。
![]()
我們再修改A里面的HelloWorld,執(zhí)行commit命令
![]()
然后我們在B里面修改HelloWorld.大家注意,此時B里面的HelloWorld并沒有update到A的修改.
![]()
執(zhí)行commit命令
![]()
提示commit失敗,所以我們只能先update.執(zhí)行update命令:
![]()
我們會發(fā)現(xiàn),多出了一些代碼.其中.mine表示是我們自己修改的,版本庫里面并沒有的代碼,我們只能手動刪掉這些提示,如圖:
![]()
再執(zhí)行commit命令.
![]()
此時還是提示錯誤,再看一下文件,會發(fā)現(xiàn)多出了三個文件.
![]()
執(zhí)行Team->標(biāo)記為解決,消除這三個文件.
![]()
再次執(zhí)行commit命令,終于成功了.
![]()
此時,我們可以把HelloWorld作為穩(wěn)定文件,對其進(jìn)行鎖定.Team->鎖定
![]()
此時,圖標(biāo)變成灰色的勾.
![]()
在解鎖之前,不能再對其進(jìn)行任何的修改操作.
我們對A驚醒update的操作.
若要將文件恢復(fù)到update之前的版本,先將HelloWorld解鎖,然后Team->還原
![]()
若要將HelloWorld恢復(fù)到以前提交的版本,右鍵點擊文件,replace with->Local History
![]()
選擇我們需要的版本,可以查看兩者的代碼,然后replace
![]()
大家去eclipse的工作目錄會發(fā)現(xiàn),svn版本控制的項目子目錄下都會有一個.svn的隱藏文件夾,如果我們要導(dǎo)出沒有.svn的文件夾的項目,可以在項目里Team->導(dǎo)出
![]()
到此,eclipse下運行svn的基本命令已經(jīng)講完.
本文來自ChinaUnix博客,如果查看原文請點:http://blog.chinaunix.net/u/21344/showart_2134232.html |
|