如果我想提交给SVN的文件经常更新会发生什么事情我经常无法快速完成合并?

sha*_*oth 9 svn version-control

考虑一下情况.我想将一个更改的文件提交给SVN,看看其他人在我签出后提交了同一个文件,所以我必须"更新"并合并更改.虽然我这样做有人再次提交相同的文件,所以当我尝试提交合并文件时,我必须再次更新.

现在,如果其他用户经常提交,看起来我将永远无法提交我的更改.真的是这样吗?在真实的开发环境中如何解决这个问题?

Red*_*ter 24

这通常被视为不是技术问题,而是"人"问题.它通常表示团队之间的沟通失败,如果您发现自己处于这种情况,您应该与您的开发人员讨论如何更好地划分您的工作.

在大多数情况下,正如您所发现的那样,开发人员在没有良好协调的情况下同时在相同的代码区域工作是不切实际的.

如果您确实以这样的速度发生这种情况,甚至无法提交您的更改,那么您已经超越了问题,听起来像是拒绝服务攻击:).

  • 是的,"人民用品"失败了.只需使用您的Code Complete第2版副本打击那个人. (5认同)

KLE*_*KLE 9

首先让我们假设它不是一个游戏,或者不是为了让你生气并且在你出去愤怒时偷走你漂亮的椅子而不是另外做的......
但是需要.;-)


如果发生这种情况,该文件很难合并(大)并且经常更新(也会变大).

这个文件承担太多责任,应该逻辑分割.

例如,对于整个应用程序,我们有一个这样的唯一属性文件.它甚至崩溃了Eclipse来比较文件的两个版本!:-)所以一些开发人员不会比较和合并它,但提交覆盖其他人的提交!我们拆分文件,每个模块一个属性文件,问题就消失了.

通常还有其他与此相关的问题,例如开发人员在大文件中没时间找到他们想要的东西.拆分解决方案解决了所有这些问题.


作为临时解决方案,您可以与人员同步,以便他们为您提供合并和提交的打开窗口.但问题通常会一直持续到团队明确解决之前.;-)


moz*_*ves 8

你不能锁定文件吗?

来自svn书http://svnbook.red-bean.com/en/1.5/svn.advanced.locking.html

svn lock banana.jpg -m "Editing file for tomorrow's release."
Run Code Online (Sandbox Code Playgroud)

  • 这只会改变基本人/过程问题的技术症状.现在你抱怨"我永远不能对这个文件进行更改,因为其他人总是把它锁定." (3认同)

tva*_*son 5

您可以尝试创建自己的分支并针对该分支进行开发.完成功能后,将分支合并到头部.这样,您可以推迟合并活动,直到您的工作完成.它并没有解决你的问题 - 你仍然需要进行合并 - 但它确实推迟了它,让你继续你的工作.也许如果开发团队中的每个人都遵循这种做法 - 或者仅针对在相同领域工作的人员使用分支机构 - 那么在主要开发分支中,文件的更改问题就越少.


Яeg*_*ght 5

您正在查看问题,好像其他用户的情况与您的情况有所不同.事实并非如此:问题不仅会影响您自己,也会影响所有其他用户.

这并不是说那些其他用户是精英群体的成员,只会导致问题,但从未体验过它.

换一种说法:

如果其他用户提交往往不够,你将永远不能,因为你必须不断更新提交更改,那么其他用户将无法提交他们的变化,或者说,是因为他们将不得不不断更新自己.这将减慢所有提交的速度,在任何特定时间,某人能够提交他的更改而无需更新,包括您自己.

tl; dr:这个问题会自行解决.