实际上,我在使用 SVN 的过程中遇到过很多次这个问题。大部分时间我都在使用 VSS 进行源代码控制,但自从最近几个月开始使用 SVN。
我们在 VS 2010 中使用乌龟和 AnkhSVN。
在我们的团队中有 5-6 人,其中一些人同时处理同一个文件。现在,当有人提交时,我们已经看到其他一些开发人员更改消失了,有时我们会得到一些与版本号一致的信息。这件事会消耗大量时间,我们必须解决冲突和所有问题。
请提供信息,以便我们避免此类问题。
实际上,我在使用 SVN 的过程中遇到过很多次这个问题。大部分时间我都在使用 VSS 进行源代码控制,但自从最近几个月开始使用 SVN。
我们在 VS 2010 中使用乌龟和 AnkhSVN。
在我们的团队中有 5-6 人,其中一些人同时处理同一个文件。现在,当有人提交时,我们已经看到其他一些开发人员更改消失了,有时我们会得到一些与版本号一致的信息。这件事会消耗大量时间,我们必须解决冲突和所有问题。
请提供信息,以便我们避免此类问题。
如果两个开发人员正在处理同一个文件并对相同的代码进行更改,那么您必须手动解决此冲突。无论您使用哪种版本控制,都无法避免它。
版本控制无法知道正确的代码是什么,因此需要人工干预。
除了阻止用户使用相同的代码之外,没有办法解决这个问题。这是通过锁定文件在 svn 中完成的。
每个开发者必须svn update
在之前svn commit
。在更新和提交之间,开发人员必须进行完整、干净的构建并运行所有测试,以确保他们的代码在将所有其他开发人员的更改合并到他们的副本中后仍然有效。
您可以在进行更改之前对需要锁定的文件或文件夹设置 svn:needs-lock,它们将被迫检查锁定。当您尝试编辑文件时,您需要先锁定它。当它已经被其他人锁定时,他们会收到一条错误消息,阻止您进行任何更改。这可以在 Tortoise SVN 的 Properties -> Advanced 中完成