开发学院,分享开发教程和最新动态

SVN 生命周期

SVN 生命周期

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

建立repository(资料库):

  repository库是开发人员存储他们所有的工作一个中央地方。repository库不仅存储文件,而且还变更历史。这意味着它保持历史是谁做的变化,何时和为什么?

  create操作是用来创建一个新的资料库。大部分的时候只需要操作一次就可以完成。当创建一个新的repository库,VCS将期望您标记一些东西来识别它,例如您希望它创建的位置,或者应该向repository库提供什么名称。

Checkout(检出):

  Checkout操作用于从资源库中创建一个工作副本。工作副本是一个私有工作场所,开发人员做自己相应的代码需修改,完成后就提交这些修改到repository库。

Update(更新):

  顾名思义Update操作是用来更新工作副本。此操作同步与存储库的工作副本。由于共享库是由所有的团队,其他开发人员可以提交他们的修改你的工作副本变成了旧的。

  让我们假设Tom 和 Jerry 两个开发人员工作的一个项目。两者检出从库中的最新版本,并开始工作。此时他们的工作拷贝与存储库是完全同步的。Jerry非常高效地完成他的工作,并提交自己的修改到版本库。

  现在,Tom 的工作副本是过时了。从资源库中,更新操作将通知Jerry的最新变化,将Tom 的工作副本更新。

执行更改:

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

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

  同样,一个可以删除的文件/目录。立即删除操作,删除文件,从工作副本,但实际删除文件添加到挂起的更改列表和操作提交到存储库后所做的更改。

  重命名操作更改文件/目录的名称。用于移动从一个地方到另一个存储库树中的文件/目录移动操作。

回顾变化:

  当检出的工作副本或更新工作副本,然后工作副本完全同步与存储库。但是当工作副本的变化,它变得比库新。这是很好的做法,审查更改,然后再提交操作。

  状态操作列出了已经取得的工作副本的修改。正如我之前提到的,只要做的工作副本的变化,所有这些变化成为挂起的更改列表的一部分。和状态操作用于查看挂起的更改列表。

  状态操作,只提供了一系列的变化,但不是关于他们的详细资料。我们可以使用diff操作已作出的修改的工作副本中查看详细信息。

修正错误:

  让我们假设一个改变自己的工作副本,但现在他要扔掉这些变化。在这种情况下,恢复操作会有所帮助。

  恢复操作撤销已作出的工作副本的修改。这是可能的一个或多个文件/目录恢复。也有可能整个工作副本恢复,在这种情况下,恢复操作会破坏挂起的更改列表,并会带来工作副本返回到原来的状态。

解决冲突:

  在合并时,可能会发生冲突。但是,什么是冲突?合并操作自动处理,可以做到安全的一切。一切被视为冲突。例如,如果“hello.c”文件被修改的分支,并在另一个分支删除?这种情况需要一个人作出决定。决心操作是用来帮助用户数字的东西,并告知VCS冲突应如何处理。

提交更改:

  提交操作是用来申请工作副本到版本库的变化。此操作修改库和其他开发人员可以通过更新他们的工作副本,看到这些变化。

  之前提交一个挂起的更改列表添加文件/目录。这是改变的地方等待提交。有了提交,我们通常会提供一个日志消息来解释为什么有人做了修改。此日志消息的一部分的历史资料库。提交是一个原子操作。含义的成功,要么全部提交或回滚。用户永远不会看到一半完成提交。