SVN - 生命週期



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

建立倉庫

倉庫是開發人員儲存所有工作的一箇中心位置。倉庫不僅儲存檔案,還儲存有關更改的歷史記錄。這意味著它維護了對檔案所做更改的歷史記錄。

“建立”操作用於建立新的倉庫。大多數情況下,此操作只執行一次。當您建立新的倉庫時,您的 VCS 會期望您提供一些資訊來識別它,例如您希望將其建立在何處,或倉庫應使用什麼名稱。

檢出

“檢出”操作用於從倉庫建立工作副本。工作副本是開發人員進行更改的私有工作區,稍後將這些更改提交到倉庫。

更新

顧名思義,“更新”操作用於更新工作副本。此操作將工作副本與倉庫同步。由於倉庫由所有團隊共享,其他開發人員可以提交他們的更改,並且您的工作副本將變得過時。

假設湯姆傑瑞是兩個正在開發專案的開發人員。兩人都從倉庫中檢出最新版本並開始工作。此時,他們的工作副本與倉庫完全同步。傑瑞非常高效地完成了他的工作,並將他的更改提交到倉庫。

現在湯姆的工作副本已過時。更新操作將從倉庫中提取傑瑞的最新更改,並更新湯姆的工作副本。

執行更改

檢出後,可以執行各種操作來執行更改。編輯是最常見的操作。可以編輯現有檔案以新增/刪除檔案中的內容。

可以新增檔案/目錄。但這些檔案/目錄不會立即成為倉庫的一部分,而是新增到待處理更改列表中,並在提交操作後成為倉庫的一部分。

類似地,可以刪除檔案/目錄。刪除操作會立即從工作副本中刪除檔案,但檔案的實際刪除將新增到待處理更改列表中,並在提交操作後對倉庫進行更改。

“重新命名”操作更改檔案/目錄的名稱。“移動”操作用於在倉庫樹中將檔案/目錄從一個位置移動到另一個位置。

審查更改

當您檢出工作副本或更新工作副本時,您的工作副本將與倉庫完全同步。但是,當您對工作副本進行更改時,它將變得比倉庫更新。在“提交”操作之前審查您的更改是一個好習慣。

“狀態”操作列出對工作副本所做的修改。正如我們之前提到的,無論何時您在工作副本中進行更改,所有這些更改都將成為待處理更改列表的一部分。“狀態”操作用於檢視待處理更改列表。

“狀態”操作僅提供更改列表,而不提供有關更改的詳細資訊。可以使用diff操作檢視對工作副本所做修改的詳細資訊。

修復錯誤

假設某人已對其工作副本進行了更改,但現在他想要丟棄這些更改。在這種情況下,“還原”操作將提供幫助。

還原操作將還原對工作副本所做的修改。可以還原一個或多個檔案/目錄。還可以還原整個工作副本。在這種情況下,“還原”操作將銷燬待處理更改列表,並將工作副本恢復到其原始狀態。

解決衝突

衝突可能在合併時發生。“合併”操作會自動處理所有可以安全執行的操作。其他所有內容都被視為衝突。例如,“hello.c”檔案在一個分支中被修改,在另一個分支中被刪除。這種情況需要一個人做出決定。“解決”操作用於幫助使用者弄清情況,並告知 VCS 處理衝突的方式。

提交更改

“提交”操作用於將工作副本中的更改應用到倉庫。此操作會修改倉庫,其他開發人員可以透過更新其工作副本來檢視這些更改。

在提交之前,必須將檔案/目錄新增到待處理更改列表中。這是更改等待提交的地方。透過提交,我們通常會提供日誌訊息來解釋某人為什麼進行更改。此日誌訊息成為倉庫歷史記錄的一部分。提交是一個原子操作,這意味著要麼整個提交成功,要麼回滾。使用者永遠不會看到未完成的提交。

廣告