SVN 生命周期(三)

3.生命周期

1. 创建版本库(Create)

  • 作用:集中存放所有开发者工作成果的空间,包含每个文件的变动历史。
  • 操作:创建新的版本库(通常只执行一次),需提供位置、名称等信息。

2. 检出(Checkout)

  • 作用:从版本库中创建一份工作副本,作为开发者的私人工作空间。
  • 操作:检出后,可以在工作副本中修改内容,之后提交回版本库。

3. 更新(Update)

  • 作用:将工作副本与版本库同步,获取他人提交的最新改动。
  • 场景示例:Tom 和 Jerry 同时检出最新版本 → Jerry 提交修改 → Tom 的工作副本过期 → Tom 执行 Update 拉取 Jerry 的改动。

4. 执行变更(Make Changes)

  • 常见操作

    • 编辑:修改已有文件内容。
    • 添加(Add) :添加新文件/目录,加入待变更列表,需提交后才进入版本库。
    • 删除(Delete) :从工作副本删除文件/目录,加入待变更列表,提交后真正删除。
    • 重命名(Rename) :更改文件/目录名。
    • 移动(Move) :将文件/目录移动到版本库中的另一位置。

5. 复查变化(Review Changes)

  • Status:列出工作副本中的所有变动(待变更列表),但不提供具体细节。
  • Diff:查看变动的详细信息(具体修改内容)。
  • 目的:在提交前确认修改是否正确。

6. 修复错误(Fix Mistakes)

  • Revert:重置对工作副本的修改,可针对一个或多个文件/目录,甚至整个工作副本。
  • 效果:销毁待变更列表,将工作副本恢复到原始状态(撤销所有未提交的修改)。

7. 解决冲突(Resolve Conflicts)

  • 发生时机:合并时出现无法自动处理的情况(例如一个分支修改了文件,另一分支删除了同一文件)。
  • 操作:使用 Resolve 操作,帮助用户定位冲突并手动决定如何处理,然后告知版本库。

8. 提交更改(Commit)

  • 前提:将需要提交的改动加入待变更列表
  • 注释:提交时提供说明(为什么会做这些改动),该注释会成为版本库历史的一部分。
  • 原子性:提交是一个原子操作 → 要么全部成功,要么全部失败(不会出现半完成状态)。
  • 效果:将工作副本的更改真正写入版本库,其他开发者可通过 Update 获取这些改动。

生命周期流程图(概念总结)

创建版本库 → 检出 → 更新 → 修改 → 复查 → 提交
                ↑___________________|
                     (循环迭代)