
- SVN 教程
- SVN - 首頁
- SVN - 基本概念
- SVN - 環境設定
- SVN - 生命週期
- SVN - 檢出流程
- SVN - 執行更改
- SVN - 審查更改
- SVN - 更新流程
- SVN - 修復錯誤
- SVN - 解決衝突
- SVN - 標籤
- SVN - 分支
- SVN 有用資源
- SVN - 快速指南
- SVN - 有用資源
- SVN - 討論
SVN - 生命週期
本章討論了版本控制系統的生命週期。在後面的章節中,我們將看到每個操作的 Subversion 命令。
建立倉庫
倉庫是開發人員儲存所有工作的一箇中心位置。倉庫不僅儲存檔案,還儲存有關更改的歷史記錄。這意味著它維護了對檔案所做更改的歷史記錄。
“建立”操作用於建立新的倉庫。大多數情況下,此操作只執行一次。當您建立新的倉庫時,您的 VCS 會期望您提供一些資訊來識別它,例如您希望將其建立在何處,或倉庫應使用什麼名稱。
檢出
“檢出”操作用於從倉庫建立工作副本。工作副本是開發人員進行更改的私有工作區,稍後將這些更改提交到倉庫。
更新
顧名思義,“更新”操作用於更新工作副本。此操作將工作副本與倉庫同步。由於倉庫由所有團隊共享,其他開發人員可以提交他們的更改,並且您的工作副本將變得過時。
假設湯姆和傑瑞是兩個正在開發專案的開發人員。兩人都從倉庫中檢出最新版本並開始工作。此時,他們的工作副本與倉庫完全同步。傑瑞非常高效地完成了他的工作,並將他的更改提交到倉庫。
現在湯姆的工作副本已過時。更新操作將從倉庫中提取傑瑞的最新更改,並更新湯姆的工作副本。
執行更改
檢出後,可以執行各種操作來執行更改。編輯是最常見的操作。可以編輯現有檔案以新增/刪除檔案中的內容。
可以新增檔案/目錄。但這些檔案/目錄不會立即成為倉庫的一部分,而是新增到待處理更改列表中,並在提交操作後成為倉庫的一部分。
類似地,可以刪除檔案/目錄。刪除操作會立即從工作副本中刪除檔案,但檔案的實際刪除將新增到待處理更改列表中,並在提交操作後對倉庫進行更改。
“重新命名”操作更改檔案/目錄的名稱。“移動”操作用於在倉庫樹中將檔案/目錄從一個位置移動到另一個位置。
審查更改
當您檢出工作副本或更新工作副本時,您的工作副本將與倉庫完全同步。但是,當您對工作副本進行更改時,它將變得比倉庫更新。在“提交”操作之前審查您的更改是一個好習慣。
“狀態”操作列出對工作副本所做的修改。正如我們之前提到的,無論何時您在工作副本中進行更改,所有這些更改都將成為待處理更改列表的一部分。“狀態”操作用於檢視待處理更改列表。
“狀態”操作僅提供更改列表,而不提供有關更改的詳細資訊。可以使用diff操作檢視對工作副本所做修改的詳細資訊。
修復錯誤
假設某人已對其工作副本進行了更改,但現在他想要丟棄這些更改。在這種情況下,“還原”操作將提供幫助。
還原操作將還原對工作副本所做的修改。可以還原一個或多個檔案/目錄。還可以還原整個工作副本。在這種情況下,“還原”操作將銷燬待處理更改列表,並將工作副本恢復到其原始狀態。
解決衝突
衝突可能在合併時發生。“合併”操作會自動處理所有可以安全執行的操作。其他所有內容都被視為衝突。例如,“hello.c”檔案在一個分支中被修改,在另一個分支中被刪除。這種情況需要一個人做出決定。“解決”操作用於幫助使用者弄清情況,並告知 VCS 處理衝突的方式。
提交更改
“提交”操作用於將工作副本中的更改應用到倉庫。此操作會修改倉庫,其他開發人員可以透過更新其工作副本來檢視這些更改。
在提交之前,必須將檔案/目錄新增到待處理更改列表中。這是更改等待提交的地方。透過提交,我們通常會提供日誌訊息來解釋某人為什麼進行更改。此日誌訊息成為倉庫歷史記錄的一部分。提交是一個原子操作,這意味著要麼整個提交成功,要麼回滾。使用者永遠不會看到未完成的提交。