4

我不知道该怎么做。我刚开始在一个实际项目中使用 SVN。我的一切工作正常。但是,我是唯一一个使用它的人。现在我想向该过程介绍第二个人。

我在我的 Windows 机器上下载了 tortoisesvn 并检查了主干。我可以编辑一个文件并提交我的新文件。一切正常。

现在,我希望第二个人在我做某事的时候做这件事。通常他可能正在处理另一个文件,我们会商定将我们提交的文件导出到测试服务器的时间(无论如何我的想法),但是如果我们正在处理同一个文件呢?例如,一个配置文件。也许我们都需要改变它。我(或他)如何在其他人更改它时阻止另一个。如果我们中的一个人提交了新的更新,它将删除我们中的一个人刚刚放入的内容。不知道在这里做什么。

4

5 回答 5

9

使用 SVN,目标不是抓取文件并说“这是我的,不要碰它”。目标是在双方都完成后合并您的更改。两个人真正进行不兼容更改的情况很少,当它们发生时,开发人员需要聚集在一起以最佳方式合并它们 - 而不是争夺谁首先赢得文件锁定。

始终在提交之前更新,以便您将他们的更改与您的合并。

于 2010-03-09T22:09:22.400 回答
6

不,它不会抹去任何东西。

如果两个人更改了一个文件并尝试提交它,第二个提交的人将收到一条错误消息,指出该文件自上次更新以来已被更改。

然后第二个人进行更新。如果 SVN 可以这样做,它将合并它们,保留两个人的更改。如果它不能(通常只有在您更改文件中相同位置的某些内容时才会出现这种情况),它会告诉您并且您将不得不处理冲突。

于 2010-03-09T22:11:16.297 回答
2

不会发生此问题,因为 Subversion(实际上是任何体面的 SCM)只会让您在执行更新后提交。如果 Subversion 无法合并您的更改,则会导致冲突,您必须手动解决。

于 2010-03-09T22:11:19.527 回答
2

SVN 在极少数情况下需要使用锁。查看 SVN 书籍的 Locking 部分了解更多详细信息。

于 2010-03-09T22:13:45.900 回答
2

听起来您需要对 SVN 的工作原理有基本的了解。我建议您阅读本书中的版本控制模型部分。

于 2010-03-09T22:15:33.827 回答