本章将讨论版本控制系统的生命周期.在后面的章节中,我们将看到每个操作的Subversion命令.
创建存储库:
存储库是开发人员存储所有存储的中心位置工作.存储库不仅存储文件,还存储有关更改的历史记录.这意味着它维护了文件中所做更改的历史记录.
'create'操作用于创建新的存储库.大多数情况下,此操作仅执行一次.当您创建新的存储库时,您的VCS会希望您说出一些内容来识别它,例如您希望在何处创建它,或者应该为存储库指定什么名称.
Checkout
'Checkout'操作用于从存储库创建工作副本.工作副本是开发人员进行更改的私有工作区,稍后将这些更改提交到存储库.
更新
顾名思义,'update'操作用于更新工作副本.此操作将工作副本与存储库同步.由于存储库由所有团队共享,其他开发人员可以提交他们的更改,并且您的工作副本会变老.
让我们假设 Tom 和 Jerry 是两个开发项目的开发人员.两者都从存储库中检出最新版本并开始工作.此时,它们的工作副本与存储库完全同步.
现在 Tom的工作副本已过期.更新操作将从存储库中提取 Jerry的最新更改,并将更新 Tom的工作副本.
执行更改
结帐后,可以执行各种操作来执行更改.编辑是最常见的操作.可以编辑现有文件以添加/删除文件中的内容.
可以添加文件/目录.但是,这些文件/目录不会立即成为存储库的一部分,而是将它们添加到挂起的更改列表中,并在提交操作后成为存储库的一部分.
同样一个可以删除文件/目录.删除操作会立即从工作副本中删除文件,但实际删除文件会添加到挂起的更改列表中,并在提交操作后对存储库进行更改.
'重命名' operation更改文件/目录的名称. "移动"操作用于将文件/目录从存储库树中的一个位置移动到另一个位置.
查看更改
当您签出时工作副本或更新工作副本,然后您的工作副本与存储库完全同步.但是当您对工作副本进行更改时,它会比存储库更新.在"提交"操作之前检查更改是一种很好的做法.
'状态'操作列出了对工作副本所做的修改.正如我们之前提到的,每当您对工作副本进行更改时,所有这些更改都将成为挂起的更改列表的一部分.并且'status'操作用于查看待处理的更改列表.
'状态'操作仅提供更改列表,但不提供有关它们的详细信息.可以使用 diff 操作来查看对工作副本进行的修改的详细信息.
修复错误
<让我们假设一个人已经改变了他的工作副本,但是现在,他想要抛弃这些变化.在这种情况下,"恢复"操作将有所帮助.
还原操作将还原对工作副本所做的修改.可以还原一个或多个文件/目录.还可以恢复整个工作副本.在这种情况下,"恢复"操作将销毁待处理的更改列表,并将工作副本恢复到其原始状态.
解决冲突:
合并时可能会发生冲突. "合并"操作自动处理可以安全完成的所有操作.其他一切都被认为是冲突.例如,"hello.c"文件在分支中被修改并在另一个分支中被删除.这种情况需要一个人做出决定. 'resolve'操作用于帮助用户弄清楚事情,并告知VCS处理冲突的方法.
提交更改
"提交"操作用于将更改从工作副本应用于存储库.此操作会修改存储库,其他开发人员可以通过更新其工作副本来查看这些更改.
在提交之前,必须将文件/目录添加到挂起的更改列表中.这是更改等待提交的位置.通过提交,我们通常会提供一条日志消息来解释为什么有人进行了更改.此日志消息成为存储库历史记录的一部分. Commit是一个原子操作,这意味着整个提交成功或者回滚.用户永远不会看到半完成提交.