避免不同开发人员在签入或合并时意外覆盖

2024-05-17

不同的开发人员签入涉及同一文件的代码,或者不同的分支可能会被合并。我是 TFS 管理方面的新手,但我确实知道如何进行基本的代码签入。如何避免管理端的代码冲突?我们使用 Microsoft Team Foundation 服务器作为版本控制。


版本控制系统的目的是允许不同的用户编辑相同的文件,以便在合并时提供合理的合并体验。多个开发人员检出同一文件的能力是让团队变得高效的因素之一。当开发或维护同一产品的多个版本时,不可能完全防止冲突。

有很多额外的指导可用通过 ALM Rangers 指南 https://vsarbranchingguide.codeplex.com/。我强烈建议您和您的开发人员阅读本文。

Note:

Visual Studio 2013 提供了比旧版本更好的合并体验。第三方工具,例如语义合并 https://visualstudiogallery.msdn.microsoft.com/2528ed09-0518-4da5-a988-bdc2eacfcc27通过解析正在合并的代码并应用一些额外的智能逻辑来防止冲突,进一步改善体验。

对于某些众所周知难以合并的文件,例如 SSIS 包,还有其他专业工具,例如投标助手智能差异 http://bidshelper.codeplex.com/.

您可以做的一些事情:

确保开发人员沟通

进行每日站会(站立会议)或能够使用 TFS 中的团队会议室的团队可以发出意图并让其他人及时了解他们正在积极做的事情。确保有专用的沟通渠道可用并且用户拥有已安装团队会议室扩展 https://visualstudiogallery.msdn.microsoft.com/c1bf5e4f-5436-465d-87da-09b2f15ff061以防它们不在同一地点。沟通可以防止许多此类问题,并且是发生此类合并问题时的最佳解决方案。

让开发人员经常执行获取最新和签入操作

虽然没有为此进行服务器设置,但让您的开发人员接受有关分支、合并和一般源代码控制模式的培训会很有帮助。如果用户定期检查传入的更改(获取最新的更改),并在对代码相对有信心时立即检查(例如使用 TDD 时在第一次测试通过后),那么发生冲突的可能性就会大大降低。

即将到来的变化镜头

Codelens 更新了新的 Lens,作为 RTM 之后发布的更新之一 http://blogs.msdn.com/b/visualstudioalm/archive/2014/03/03/new-codelens-indicator-incoming-changes.aspx?wa=wsignin1.0。该镜头要求客户端和服务器至少升级到 Update 2 和 Visual Studio 2013 Ultimate Update 2。建议您在开始应用更新时始终保持最新状态,因此我建议您安装 Update 4.

虽然 Code Lens 是一项终极功能,但随着 Visual Studio 2015 的发布,它将转为专业版。

使用专属结帐

如果用户使用结帐和锁定选项 https://msdn.microsoft.com/en-us/library/ms181419.aspx要签出文件,他们可以向其他用户发出信号,表明该文件正在发生重大更改。此功能要求所有用户将其工作空间类型设置为“服务器工作空间”。本地工作区由于其断开连接的性质,会忽略 Lock 标志。尽管个人用户始终可以覆盖其工作空间类型,但可以设置集合级别的默认工作区类型 http://blogs.msdn.com/b/visualstudioalm/archive/2012/10/05/set-local-workspaces-as-default-when-upgrading-to-tfs-2012.aspx.

禁用单个文件类型的合并和多重签出

A better solution is to mark file types that are hard to merge, the old style SSIS packages with lots of XML and GUIDs are agood candidate here. Open the Source Control settings and add the extensions of "bad files". https://msdn.microsoft.com/en-us/library/ms252452%28v=vs.100%29.aspx This setting applies partially in Visual Studio regardless of the workspace setting (Visual Studio will only offer Take Local or Take Server and will not offer to merge.

禁用多重结账

可以设置项目的源代码控制选项不允许“多次结账” https://msdn.microsoft.com/en-us/library/ms242869%28v=vs.100%29.aspx,当文件被签出时,这将自动获取锁。不建议打开此功能,因为它会在 Visual Studio 中工作时引入许多令人沮丧的事情(最重要的是,在添加任何文件时,必须获取项目文件的锁定)。与独占结账一样,这要求所有用户使用服务器工作区。

由于此功能将防止任何文件被多人检出,因此通常会尝试使用多种方法来解决此问题。只有当您的开发人员频繁出现问题时,您才可以在他们接受培训时暂时启用此功能。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

避免不同开发人员在签入或合并时意外覆盖 的相关文章

随机推荐