一、svn簡介
Subversion(簡稱SVN)是一個版本控制系統,一組文件存放在中心版本庫,記錄每一次文件和目錄的修改,Subversion允許把數據恢復到早期版本,或是檢查數據修改的歷史,Subversion可以通過網絡訪問它的版本庫,從而使用戶在不同的電腦上進行操作。
二、為什么要使用svn?
在程序的編寫過程中,每個程序員都會負責開發一個或多個模塊,且開發中會生成很多不同的版本,這就需要程序員有效的管理代碼,在需要的時候可以迅速,准確取出相應的版本。
三、在eclipse上安裝svn插件
1、Help——>Install New Software
2、點擊“Add”,在彈出的窗口里,輸入任意name,及對應的SVN地址 http://subclipse.tigris.org/update_1.8.x ,然后點“OK”
3、將出現的2個選項都選中,然后一路點Next,就可以了
4、安裝成功標志:
四、svn插件的使用
4.1 從svn檢出項目
1、開始檢出程序:打開eclipse->文件->import->SVN->選擇"從svn檢出項目”單擊"下一步"
2、以前檢出過項目,配置了svn地址,直接選擇需要檢出項目的svn地址即可,然后跳到第4步。如果是第一次檢出項目,從沒有配置過svn地址,選擇“創建新的資源庫位置”,單擊“下一步”
3、輸入svn地址,如果地址錯誤這里會有提示,輸入成功,單擊“完成”
4、進入svn庫項目,可以看到樹形的項目列表,選擇需要檢出的項目,單擊選中即可,單擊“下一步”
5、一般為了方便識別,不需要改檢出的項目名稱,也不需要進行其他的配置,直接選擇“作為工作空間中的項目檢出”即可,如果要檢出最新版本,什么都不需要更改,直接單擊“完成”即可。
6、想選擇檢出的版本,單擊“顯示日志”,在彈出框中選擇想要檢出的svn版本號,單擊“確定”,然后檢出就可以了
4.2 svn更新項目
4.2.1 為什么要先更新再提交?
更新:把他人上傳的代碼更新到本地環境,你在這個環境下把自己的代碼合並到這個版本中。
從svn檢出的項目每個文件后面都帶有版本號、提交時間、提交人等標識,並且這些標識不盡相同。如:
也就是說,一個項目是由若干個具有不同版本號的文件組成的,雖然我早上從SVN上檢出的項目中的每個文件都是最新版本的,如index.jsp版本號是2971,但是工作一天之后,當我想要提交代碼的時候,我不能保證服務器中項目的每個文件還是和早上剛剛從SVN檢出時一樣,可能這期間有同事已經提交過代碼,所以其修改過的某個文件的版本號就發生了改變,如index.jsp的版本號變2972,而我本地的這個文件的版本號並沒有改變,還是2971,如果我同樣修改了index.jsp,不更新直接提交,那么我提交的index.jsp版本號也會從2971變為2972,這樣將導致我的文件會直接將同事提交的這個文件覆蓋,同事的勞動成果將白費。所以,提交代碼之前應該先“更新”一下,更新的並不是所有文件,而是項目中的個別文件,這樣做的目的是為了能使自己的版本與別人更新的版本保持一致。
4.2.2 更新的步驟
1.右鍵點擊指定的項目,在彈出的關聯菜單中點擊Team->與資源庫同步。此時,我們就進入了團隊同步視圖。如下圖所示:
LocalUpdate.java是我們在本地新建的一個文件,服務器上之前不存在該文件;
NewUpdate.java是其他人新建並提交的文件;
Test.java是本地代碼在未更新到最新版本的情況下,對代碼進行了更改,出現了沖突。
不同標志的含義:
點擊圖中編號①的圖標,可以只顯示服務器上更新過的文件;
點擊圖標②,可以只顯示我們本地改動過的文件;
圖標③就是Eclipse默認的當前視圖,同時顯示本地和服務器更新過的文件,
可以從箭頭的方向判斷,箭頭向左就是需要從svn更新到本地的,向右就是需要從本地提交到SVN的。
不同標志的含義:
2.在上圖中,選中服務器上更新過的一個或多個文件/文件夾,然后點擊鼠標右鍵,在彈出的關聯菜單中,點擊【更新】,即可將SVN服務器最新版本的該文件更新到本地項目中(選中項目根目錄點擊【更新】,就表示將服務器上所有改動過的文件全部更新到本地)。
3.解決沖突
沖突情況1:服務器代碼和自己代碼改動的地方相同
這種情況比較復雜,一般只能將自己的代碼保存一份到本地,然后直接將服務器代碼更新下來,然后在新的代碼上修改自己的邏輯。
沖突情況2:服務器代碼和自己代碼改動的地方不同
這種情況比較常見,就是你跟別的開發者都在更改同一個文件,但是由於開發任務是分開的,所以更改的地方是不同的,解決辦法如下:
①雙擊沖突文件進入比較視圖
②找到服務器上新增的但本地沒有的代碼塊,選中此代碼塊,點擊右上角的按鈕將服務器代碼復制到本地(其他地方也同此操作),如果點擊按鈕沒用,則關閉比較視圖重新打開
③將所有服務器上新增的代碼復制到本地文件后,右鍵沖突文件選擇標記為合並即可,此時該文件就會消失在Synchronize視圖下,並且該文件的代碼已經成功將本地代碼和遠程代碼合並到一起
4.3 提交項目
提交:將合並好的,並能夠使項目順利運行的版本提交到svn,他人再根據你提交的版本開發,保證代碼不會沖突。
4.4 還原文件到歷史版本
1、右鍵點擊指定的文件,在彈出的關聯菜單中點擊Team->顯示資源歷史記錄
2、此時會顯示當前文件的所有歷史版本列表,右鍵點擊指定的版本,在彈出的關聯菜單中點擊"獲取內容",即可將本地文件替換為該版本的文件,最后直接點擊"提交"即可。