系統提供撤銷的功能對我們實際開發中特別重要。改動後撤銷幾乎也是我們每個人經常做的事情。再多人進行同乙個專案的開發或者測試的時候,版本的唯一性(類似於臨界區資源),也就是說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
為匯入源**命令。目的是
file:///home/zhuxy/svn_test/project
。一般會是網路上的乙個站點(目錄)。本地採用本地目錄,
「file
://」
表示協議。
subversion
支援http
、ssh
協議。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
的版本號變為
2svn log multiply.c
6、解決衝突的命令
如果兩個人同時對乙個檔案改動,就會發生衝突。
第乙個人提交可以順利提交(就是先提交的那個人,因為這樣子版本號自然
+1),第二個提交的就會報錯,因為版本號
+1已經被占用。
svn update
svn resolves multiply
7、撤銷改動
回滾到版本
3的狀態
svn merge -r 4:3 multiply.c
svn commit -m 「
鑑於效率,保留兩位數的除法巨集定義
」
版本控制系統
linux一直痛恨的cvs及svn都是集中式的版本控制系統,而git是分布式版本控制系統,集中式和分布式版本控制系統有什麼區別呢?1 集中式版本控制系統 代表 svn cvs 版本庫是集中存放在 伺服器的,而幹活的時候,用的都是自己的電腦,所以要先從 伺服器取得最新的版本,然後開始幹活,幹完活了,再...
版本控制系統
github是全球最大的開源專案託管平台,這個平台在技術領域也非常有影響力,託管必然離不開版本控制,下面就介紹一下版本控制系統。q1 什麼是版本控制系統?a 版本控制系統的英文名叫做vcs version control system 版本控制系統是以記錄目錄或檔案的改變為基礎的。試想一下,如果沒有...
git版本控制系統
總結 1.初始化乙個git倉庫,使用 git init 命令 2.新增檔案到git倉庫分兩步 第一步,使用命令 git add file 注意,可反覆多次使用,新增多個檔案 第二步,使用命令 git commit 完成小結 1 head 指向的是當前版本,因此可以使用 git reset hard ...