SVN生命週期

在本章中,我們將討論有關版本控制系統的生命週期。在後面的章節中,我們將看到Subversion命令爲每個操作。

建立資料庫:

該庫是開發人員存儲他們所有的工作一箇中央地方。資源庫不僅存儲文件,而且還變更歷史。這意味着它保持歷史是誰做的變化,何時和爲什麼?

創建操作是用來創建一個新的資料庫。大部分的時候只有一次操作完成。當創建一個新的存儲庫,VCS將期待你說的東西,比如,想讓它被創建,它的名稱應該是什麼,以確定它。

檢出:

檢出操作用於從資源庫中創建一個工作副本。工作副本是一個私有工作場所的開發人員做他們的變化,後來就到存儲庫提交這些變化。

更新:

顧名思義更新操作是用來更新工作副本。此操作同步與存儲庫的工作副本。由於共享庫是由所有的團隊,其他開發人員可以提交他們的修改你的工作副本變成了舊的。

讓我們假設Tom 和 Jerry 兩個開發人員工作的一個項目。兩者檢出從庫中的最新版本,並開始工作。此時他們的工作拷貝與存儲庫是完全同步的。傑裏完成他的工作非常有效,並提交自己的修改到版本庫。

現在,Tom 的工作副本是過時了。從資源庫中,更新操作將Jerry 的最新變化,將Tom 的工作副本更新。

執行更改:

檢出後可以做各種操作進行更改。編輯是最常見的操作。一個可以編輯現有的文件,從文件中添加/刪除的內容。

人們可以添加文件/目錄。但隨即這些文件/目錄不會成爲存儲庫中的一部分,而不是將它們添加到掛起的更改列表,併成爲後提交操作的庫中的一部分。

同樣,一個可以刪除的文件/目錄。立即刪除操作,刪除文件,從工作副本,但實際刪除文件添加到掛起的更改列表和操作提交到存儲庫後所做的更改。

重命名操作更改文件/目錄的名稱。用於移動從一個地方到另一個存儲庫樹中的文件/目錄移動操作。

回顧變化:

當檢出的工作副本或更新工作副本,然後工作副本完全同步與存儲庫。但是當工作副本的變化,它變得比庫新。這是很好的做法,審查更改,然後再提交操作。

狀態操作列出了已經取得的工作副本的修改。正如我之前提到的,只要做的工作副本的變化,所有這些變化成爲掛起的更改列表的一部分。和狀態操作用於查看掛起的更改列表。

狀態操作,只提供了一系列的變化,但不是關於他們的詳細資料。我們可以使用diff操作已作出的修改的工作副本中查看詳細信息。

修正錯誤:

讓我們假設一個改變自己的工作副本,但現在他要扔掉這些變化。在這種情況下,恢復操作會有所幫助。

恢復操作撤銷已作出的工作副本的修改。這是可能的一個或多個文件/目錄恢復。也有可能整個工作副本恢復,在這種情況下,恢復操作會破壞掛起的更改列表,並會帶來工作副本返回到原來的狀態。

解決衝突:

在合併時,可能會發生衝突。但是,什麼是衝突?合併操作自動處理,可以做到安全的一切。一切被視爲衝突。例如,如果「hello.c」文件被修改的分支,並在另一個分支刪除?這種情況需要一個人作出決定。決心操作是用來幫助用戶數字的東西,並告知VCS衝突應如何處理。

提交更改:

提交操作是用來申請工作副本到版本庫的變化。此操作修改庫和其他開發人員可以通過更新他們的工作副本,看到這些變化。

之前提交一個掛起的更改列表添加文件/目錄。這是改變的地方等待提交。有了提交,我們通常會提供一個日誌消息來解釋爲什麼有人做了修改。此日誌消息的一部分的歷史資料庫。提交是一個原子操作。含義的成功,要麼全部提交或回滾。用戶永遠不會看到一半完成提交。