版本控制入門簡介

2021-09-07 21:19:24 字數 1052 閱讀 6885

版本控制已經出現有些年頭了。然而,我還是會被人問起一些,諸如版本控制是什麼或者它是如何工作的,這樣基礎的問題。本文會概括地解釋版本控制解決的重要問題,本文使用的場景針對的是源**版本控制。

目前有很多不同型別的版本控制系統(version control system, vcs)。一些vcs,比如subversion和cvs,以**倉庫(repository)為中心進行架構。此外,還有分布式的vcs(distributed vcs,dvcs), git 和 mercurial 是兩個新近出現的dvcs。然而,在上述兩種型別的環境中,通常會有乙個「指定的」**倉庫。對應地,比如乙個subversion伺服器或者乙個github倉庫。下面會基於這個場景進行圖示說明。那麼讓我們開始吧。

在開發者拷貝到本機之前,伺服器需要建立乙個倉庫。建立初始倉庫會由於產品不同而有所差別。從現在起,你所要知道的就是,在伺服器上有乙個初始空間。我把這個版本稱作版本「a」。

現在,每個開發者(開發者1和開發者2)都會拷貝版本「a」到他們本地電腦。再一次地,從伺服器拷貝的過程會由於產品不同採用的技術會有所差別。

每個開發者會在他們的本地拷貝上進行開發。他們的本地拷貝基於版本「a」。然而,由於他們應該不會做同樣的開發,因而他們的版本會有所差別。因此,會有2個以上的版本會同時被建立,比如版本「b」和版本「c」。

開發者1首先完成了她的工作並提交到伺服器。伺服器上的當前版本被更新成版本「b」。

開發者2現在完成了他的工作並試圖提交到伺服器。然而,這是伺服器告知他基於開發的版本已經發生改變。這也是為什麼採取版本控制的首要原因之一。這個特性是對網路共享**然後由開發者手動更新的乙個跨越式發展,這確保了之前的編輯沒有被新的修改覆蓋。

開發者2必須首先獲得所有版本「b」的變化,並合併到他的修改中,然後才可以提交到伺服器。這個過程聽起來有些複雜。然而,大多數現代的版本控制系統十分 高階,能夠自動在開發者的本地拷貝上完成合併。有幾種情況會產生衝突(例如:開發者1和開發者2同時修改了同乙個檔案的同一行)。這就是一些vcs產品比 其他更高階的地方。不論如何完成合併,現在開發者2在他們的本地系統上同時混合了版本b和版本c。

現在開發者2可以提交他的版本到伺服器。

版本控制 SVN簡介

在學習svn的時候,我們不可避免的會問 svn是什麼?我們為什麼要學習svn?它能幫我們做什麼?怎麼用它?是維護工程藍圖的標準作法,能追蹤工程藍圖從誕生一直到定案的過程。此外,版本控制也是一種軟體工程技巧,藉以在軟體開發的過程中,確保由不同人所編輯的同一程式檔案都得到同步。1 程式 1 更改原始檔,...

版本控制的簡介

cvs採用客戶端 伺服器架構設計,版本庫位於伺服器端,實際上就是乙個rcs檔案容器。每乙個rcs檔案以 v 作為檔名字尾,用於儲存對應檔案的歷次更改歷史。rcs檔案中只保留乙個版本的完全拷貝,其他歷次更改僅將差異儲存其中,使得儲存變得更加高效。圖1 1展示了cvs版本控制系統的工作原理,可以看到作為...

AWS Lambda 版本控制簡介

在建立 lambda 函式時,只有乙個版本 即 latest版本。當您發布版本時,aws lambda 在 latest版本中建立了 lambda 函式 的快照副本 和配置 已發布的版本是不可變的。也就是說,您無法更改 或配置資訊。新版本具有包含版本號字尾的唯一 arn,如下所示。每個 lambda...