版本控制系統Subversion

系統提供撤銷的功能對我們實際開發中特別重要。改動後撤銷幾乎也是我們每個人經常做的事情。再多人進行同一個項目的開發或者測試的時候,版本的唯一性(類似於臨界區資源),也就是說A B 兩個人協同工作的時候不能同時對同一個文件改動,並保存成功。否則就會出現不一致問題。版本控制系統很好的解決了這一問題,並且提供日誌文件,記錄改動的各種信息,方便撤銷操作。版本控制系統就是一套在程序開發過程中存儲源代碼所有修改的工具。此處主要介紹Subversion的用法。

1、安裝Subversion

       Ubuntu 在安裝源中提供了Subversion 的下載,

       sudo apt-get update

       sudo apt-get install subversion  ##全部小寫

       測試安裝結果:

       svn -–version

       svnadmin –version

       結果如下表示安裝成功:

2、建立項目倉庫

       項目倉庫用來存儲各種文件的主要場所,以目錄以作爲載體。建立倉庫svn_test。將項目所有相關的源代碼放在這裏面。

       zhuxy@ubuntu:~$ mkdir /home/zhuxy/svn_test

       zhuxy@ubuntu:~$ svnadmin create /home/zhuxy/svn_test

       沒報錯沒的話就是創建成功了。此時在svn_test下面已經有部分文件了。Subversion就是通過他們來記錄項目發生的過程。

    

3、創建項目並導入源文件

       第一步創建兩個項目;第二步導入源文件到項目倉庫中import

          

       命令解析:import爲導入源代碼命令。目的是file:///home/zhuxy/svn_test/project。一般會是網絡上的一個站點(目錄)。本地採用本地目錄,“file//”表示協議。subversion支持HTTPSSH 協議。project爲本地的項目名,這並不是實際存在的一個項目,而是一個邏輯上的項目。爲了防止自己把項目的名字忘記了,可以在本目錄下創建一個project項目。但這個project項目中不會自動存儲任何內容。”.“表示當前目錄,表示將當前目錄的所有文件都導入到項目倉庫中。

-m選項是爲本次操作添加一個操作說明,對於日誌文件特別重要,相當於程序中的註釋,當出現問題時,可以根據提示信息快速找到原因,即使省略該選項,Subversion 還是會強制要求輸入的。

4、開始項目開發

開發人員總是會在自己主機上建立一個目錄,然後在這個目錄下編寫程序。下面這個目錄就是在用戶主目錄下面建立work/project目錄,接下來的開發就放在此目錄下面。      

下面從服務器上取得源文件的工作拷貝。

由於剛剛把源文件導入到了項目倉庫。所以在subversion的邏輯來看,這就是版本”1“      

checkoutzhidao subversion從服務器簽出源資源。目標是project目錄。查看project目錄,可以看到源文件已經在裏面了。

 

此時project目錄已經和項目“file……/project”已經在subversion層面上建立了關聯,以後只要在projec目錄上執行的svn update就可以更新本地源代碼。

 

5、後續比較重要的幾個命令

客戶端修改結束保存時可以查看svn中的源代碼有沒有在被修改(修改未提交)

       svn status multiply.c

       會顯示M    multiply.c

查看修改的和源文件的不同:

svn diffmultiply.c

修改後提交

svn commit -m “修改宏定義宏的錯誤

完成提交後會查看日誌文件,會發現multiply.c的版本號變爲2

svn log multiply.c

 

6、解決衝突的命令

如果兩個人同時對一個文件改動,就會發生衝突。

第一個人提交可以順利提交(就是先提交的那個人,因爲這樣子版本號自然+1),第二個提交的就會報錯,因爲版本號+1已經被佔用。

svn update

svn resolves multiply

 

7、撤銷改動

回滾到版本3的狀態

svn merge -r 4:3 multiply.c

svn commit -m “鑑於效率,保留兩位數的除法宏定義

聲明:此博文參考劉憶智的書籍Ubuntu從入門到精通,淺顯易懂,值得一讀。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章