SVN - 生命周期



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

创建仓库

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

“创建”操作用于创建新的仓库。大多数情况下,此操作只执行一次。当您创建新的仓库时,您的 VCS 会期望您提供一些信息来识别它,例如您希望将其创建在何处,或仓库应使用什么名称。

检出

“检出”操作用于从仓库创建工作副本。工作副本是开发人员进行更改的私有工作区,稍后将这些更改提交到仓库。

更新

顾名思义,“更新”操作用于更新工作副本。此操作将工作副本与仓库同步。由于仓库由所有团队共享,其他开发人员可以提交他们的更改,并且您的工作副本将变得过时。

假设汤姆杰瑞是两个正在开发项目的开发人员。两人都从仓库中检出最新版本并开始工作。此时,他们的工作副本与仓库完全同步。杰瑞非常高效地完成了他的工作,并将他的更改提交到仓库。

现在汤姆的工作副本已过时。更新操作将从仓库中提取杰瑞的最新更改,并更新汤姆的工作副本。

执行更改

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

可以添加文件/目录。但这些文件/目录不会立即成为仓库的一部分,而是添加到待处理更改列表中,并在提交操作后成为仓库的一部分。

类似地,可以删除文件/目录。删除操作会立即从工作副本中删除文件,但文件的实际删除将添加到待处理更改列表中,并在提交操作后对仓库进行更改。

“重命名”操作更改文件/目录的名称。“移动”操作用于在仓库树中将文件/目录从一个位置移动到另一个位置。

审查更改

当您检出工作副本或更新工作副本时,您的工作副本将与仓库完全同步。但是,当您对工作副本进行更改时,它将变得比仓库更新。在“提交”操作之前审查您的更改是一个好习惯。

“状态”操作列出对工作副本所做的修改。正如我们之前提到的,无论何时您在工作副本中进行更改,所有这些更改都将成为待处理更改列表的一部分。“状态”操作用于查看待处理更改列表。

“状态”操作仅提供更改列表,而不提供有关更改的详细信息。可以使用diff操作查看对工作副本所做修改的详细信息。

修复错误

假设某人已对其工作副本进行了更改,但现在他想要丢弃这些更改。在这种情况下,“还原”操作将提供帮助。

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

解决冲突

冲突可能在合并时发生。“合并”操作会自动处理所有可以安全执行的操作。其他所有内容都被视为冲突。例如,“hello.c”文件在一个分支中被修改,在另一个分支中被删除。这种情况需要一个人做出决定。“解决”操作用于帮助用户弄清情况,并告知 VCS 处理冲突的方式。

提交更改

“提交”操作用于将工作副本中的更改应用到仓库。此操作会修改仓库,其他开发人员可以通过更新其工作副本来查看这些更改。

在提交之前,必须将文件/目录添加到待处理更改列表中。这是更改等待提交的地方。通过提交,我们通常会提供日志消息来解释某人为什么进行更改。此日志消息成为仓库历史记录的一部分。提交是一个原子操作,这意味着要么整个提交成功,要么回滚。用户永远不会看到未完成的提交。

广告