开发手册 欢迎您!
软件开发者资料库

SVN - 生命周期

SVN生命周期 - 学习Apache Subversion(SVN),一个简单易用的版本控制和版本控制系统,使用这个初学者教程,包含从基本概念,环境,生命周期,创建存储库,签入过程,更新过程开始的基础知识到高级知识,结帐流程,执行更改,审核更改,修复错误,解决冲突,提交更改,分支和SVN标记。

本章将讨论版本控制系统的生命周期.在后面的章节中,我们将看到每个操作的Subversion命令.

创建存储库:

存储库是开发人员存储所有存储的中心位置工作.存储库不仅存储文件,还存储有关更改的历史记录.这意味着它维护了文件中所做更改的历史记录.

'create'操作用于创建新的存储库.大多数情况下,此操作仅执行一次.当您创建新的存储库时,您的VCS会希望您说出一些内容来识别它,例如您希望在何处创建它,或者应该为存储库指定什么名称.

Checkout

'Checkout'操作用于从存储库创建工作副本.工作副本是开发人员进行更改的私有工作区,稍后将这些更改提交到存储库.

更新

顾名思义,'update'操作用于更新工作副本.此操作将工作副本与存储库同步.由于存储库由所有团队共享,其他开发人员可以提交他们的更改,并且您的工作副本会变老.

让我们假设 Tom Jerry 是两个开发项目的开发人员.两者都从存储库中检出最新版本并开始工作.此时,它们的工作副本与存储库完全同步.

现在 Tom的工作副本已过期.更新操作将从存储库中提取 Jerry的最新更改,并将更新 Tom的工作副本.

执行更改

结帐后,可以执行各种操作来执行更改.编辑是最常见的操作.可以编辑现有文件以添加/删除文件中的内容.

可以添加文件/目录.但是,这些文件/目录不会立即成为存储库的一部分,而是将它们添加到挂起的更改列表中,并在提交操作后成为存储库的一部分.

同样一个可以删除文件/目录.删除操作会立即从工作副本中删除文件,但实际删除文件会添加到挂起的更改列表中,并在提交操作后对存储库进行更改.

'重命名' operation更改文件/目录的名称. "移动"操作用于将文件/目录从存储库树中的一个位置移动到另一个位置.

查看更改

当您签出时工作副本或更新工作副本,然后您的工作副本与存储库完全同步.但是当您对工作副本进行更改时,它会比存储库更新.在"提交"操作之前检查更改是一种很好的做法.

'状态'操作列出了对工作副本所做的修改.正如我们之前提到的,每当您对工作副本进行更改时,所有这些更改都将成为挂起的更改列表的一部分.并且'status'操作用于查看待处理的更改列表.

'状态'操作仅提供更改列表,但不提供有关它们的详细信息.可以使用 diff 操作来查看对工作副本进行的修改的详细信息.

修复错误

<让我们假设一个人已经改变了他的工作副本,但是现在,他想要抛弃这些变化.在这种情况下,"恢复"操作将有所帮助.

还原操作将还原对工作副本所做的修改.可以还原一个或多个文件/目录.还可以恢复整个工作副本.在这种情况下,"恢复"操作将销毁待处理的更改列表,并将工作副本恢复到其原始状态.

解决冲突:

合并时可能会发生冲突. "合并"操作自动处理可以安全完成的所有操作.其他一切都被认为是冲突.例如,"hello.c"文件在分支中被修改并在另一个分支中被删除.这种情况需要一个人做出决定. 'resolve'操作用于帮助用户弄清楚事情,并告知VCS处理冲突的方法.

提交更改

"提交"操作用于将更改从工作副本应用于存储库.此操作会修改存储库,其他开发人员可以通过更新其工作副本来查看这些更改.

在提交之前,必须将文件/目录添加到挂起的更改列表中.这是更改等待提交的位置.通过提交,我们通常会提供一条日志消息来解释为什么有人进行了更改.此日志消息成为存储库历史记录的一部分. Commit是一个原子操作,这意味着整个提交成功或者回滚.用户永远不会看到半完成提交.