SVN的學習和使用(二)——SVN生命週期

一、創建版本庫

    版本庫相當於一個集中的空間,用於存放開發者所有的工作成果。版本庫不僅能存放文件,還包括了每次修改的歷史,即每個文件的變動歷史。

    Create 操作是用來創建一個新的版本庫。大多數情況下這個操作只會執行一次。當你創建一個新的版本庫的時候,你的版本控制系統會讓你提供一些信息來標識版本庫,例如創建的位置和版本庫的名字。


二、檢出

    Checkout 操作是用來從版本庫創建一個工作副本。工作副本是開發者私人的工作空間,可以進行內容的修改,然後提交到版本庫中。


三、更新

    顧名思義,update 操作是用來更新版本庫的。這個操作將工作副本與版本庫進行同步。由於版本庫是由整個團隊共用的,當其他人提交了他們的改動之後,你的工作副本就會過期。

讓我們假設 Tom 和 Jerry 是一個項目的兩個開發者。他們同時從版本庫中檢出了最新的版本並開始工作。此時,工作副本是與版本庫完全同步的。然後,Jerry 很高效的完成了他的工作並提交了更改到版本庫中。

此時 Tom 的工作副本就過期了。更新操作將會從版本庫中拉取 Jerry 的最新改動並將 Tom 的工作副本進行更新。


四、執行變更

    當檢出之後,你就可以做很多操作來執行變更。編輯是最常用的操作。你可以編輯已存在的文件來,例如進行文件的添加/刪除操作。

    你可以添加文件/目錄。但是這些添加的文件目錄不會立刻成爲版本庫的一部分,而是被添加進待變更列表中,直到執行了 commit 操作後纔會成爲版本庫的一部分。

    同樣地你可以刪除文件/目錄。刪除操作立刻將文件從工作副本中刪除掉,但該文件的實際刪除只是被添加到了待變更列表中,直到執行了 commit 操作後纔會真正刪除。

    Rename 操作可以更改文件/目錄的名字。"移動"操作用來將文件/目錄從一處移動到版本庫中的另一處。


五、複查變化

    當你檢出工作副本或者更新工作副本後,你的工作副本就跟版本庫完全同步了。但是當你對工作副本進行一些修改之後,你的工作副本會比版本庫要新。在 commit 操作之前複查下你的修改是一個很好的習慣。

    Status 操作列出了工作副本中所進行的變動。正如我們之前提到的,你對工作副本的任何改動都會成爲待變更列表的一部分。Status 操作就是用來查看這個待變更列表。

    Status 操作只是提供了一個變動列表,但並不提供變動的詳細信息。你可以用 diff 操作來查看這些變動的詳細信息。


六、修復錯誤

    我們來假設你對工作副本做了許多修改,但是現在你不想要這些修改了,這時候 revert 操作將會幫助你。

Revert 操作重置了對工作副本的修改。它可以重置一個或多個文件/目錄。當然它也可以重置整個工作副本。在這種情況下,revert 操作將會銷燬待變更列表並將工作副本恢復到原始狀態。


七、解決衝突

    合併的時候可能會發生衝突。Merge 操作會自動處理可以安全合併的東西。其它的會被當做衝突。例如,"hello.c" 文件在一個分支上被修改,在另一個分支上被刪除了。這種情況就需要人爲處理。Resolve 操作就是用來幫助用戶找出衝突並告訴版本庫如何處理這些衝突。


八、提交更改

    Commit 操作是用來將更改從工作副本到版本庫。這個操作會修改版本庫的內容,其它開發者可以通過更新他們的工作副本來查看這些修改。

    在提交之前,你必須將文件/目錄添加到待變更列表中。列表中記錄了將會被提交的改動。當提交的時候,我們通常會提供一個註釋來說明爲什麼會進行這些改動。這個註釋也會成爲版本庫歷史記錄的一部分。Commit 是一個原子操作,也就是說要麼完全提交成功,要麼失敗回滾。用戶不會看到成功提交一半的情況。


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