如何使用SVN使我们的代码同步?

Mem*_*eak 1 tortoisesvn conflict

我使用tortoiseSVN来同步我们的代码.但最近我发现有一些不太方便的东西.当我修改文件时,让我们说a.jsp,我的同事也可能修改这个文件,a.jsp,这可能会导致冲突,任何一个使用都需要先检查他的代码,另一个将需要更新到最新版本,然后逐个解决冲突,这实际上是错误的.

所以我需要在陆龟SVN中使用一些函数,它可以在我编辑时锁定a.jsp,并防止其他同事同时修改文件.我在tortoiseSVN中尝试了"锁定"功能,但它不起作用,当我锁定a.jsp文件时,我的同事仍然可以同时修改此文件而不进行任何提升和提醒,就像"你的同事正在修改这个文件,请修改,直到签入"...

还有更好的解决方案吗?提前致谢 !!

Noo*_*ilk 6

是的,有一个更好的解决方案,它由3部分组成:

  1. 从不锁定,你不需要
  2. 不要与其他人同时处理同一文件,或至少与文件完全相同的部分
  3. 如果你这样做,乐意合并.

合并是使用SVN等源控制系统的典型部分.你不应该害怕它,你应该高兴地拥抱它.

通常,合并可以是自动的,除非您在相同的区域中工作.在这种情况下,您必须手动进行更改(但TortiseSVN中的diff工具将帮助您完成此操作).

我建议如果发生这种情况,你会重新评估你在项目中分配工作的方式.


Gre*_*ill 5

正如其他人所提到的,最灵活的工作流程是您不需要锁定的工作流程.但是,如果您确实想要锁定文件,Subversion将提供此功能.

将属性添加svn:needs-lock到您想要锁定的文件中,并将值设置为*(我认为它实际上不重要属性值).然后在检出或更新时,Subversion会在工作副本中将这些文件标记为只读,以提醒您先锁定它们.

你可以使用Subversion锁定文件(我看到你已经找到了这个选项,但它对于不需要锁定的文件没有做任何事情),这会使文件在磁盘上进行读写.然后进行更改.当您签入文件时,Subversion将自动释放锁定(但如果您愿意,可以选择保留锁定).然后,该文件将再次在您的工作副本中为只读.

请注意,锁定Subversion只是"建议".这意味着即使其他人可能已经拥有它,任何其他人都可以强制获取锁.在这种情况下,仍然支持工作流,因为有些人可能仍然需要合并他们的更改,而不需要锁定.

最后,锁定文件是处理Subversion中非文本文件的最佳方式,例如图像文件或MS Word文件.Subversion无法自动合并这些类型的文件,因此建议锁定有助于确保两个人不会同时尝试编辑同一文件.