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