我们使用的颠复我们的来源控制系统和存储visual studio项目的文件(vcproj)在与源控制系统作为是正常的,我想。与颠复我们不要使用任何形式的文件锁,因此,如果两个开发者的工作在相同的项目同时并添加文件的项目,或改变设置,第二个提交了合并的变化。

你怎么合并这些变化?

Vcproj文件只是文本文件,以便它能够编辑他们的手但是他们不是非常适合进行编辑手,特别是通过小型开发人员。

这种方式我能想到的是

  • 获得最新版本,从svn和重新加入当地的所有变化手
  • 编辑的文件通过手解决任何冲突从一个自动合并
  • 实施某些形式的锁定方案以防止同时变化
  • 有一个协议之间的开发人员使他们不会同时变化

目前我们正在使用的第一种选择重新加入的所有变化手但这是耗费时间和我在想如果有一个更好的办法。

有源文件的自动合并的特征的工作大部分时间,我们没有得到很多冲突。

有帮助吗?

解决方案

我已经找到,备选案文2(编辑的文件,通过手)一般运作相当好,只要你使用一个很好的比较工具(I使用 WinMerge).主要的问题,我们遇到的是,Visual Studio有时会重新排序的文件。但是,如果你有一个很好的比较/合并工具,那么它应该能够区分已更改的内容和移动的内容。可能有很大的帮助。

其他提示

你可能会找到 项目:合并工具SLN文件 有用的

这是一个艰难的问题和我想的一个弱点Visual Studio架构。我们找到圆它是没有项目文件来源的控制和拥有建立一个脚本,处理了结构设置。

替代是很混乱的,我们不能保证一致的基础或环境之间的开发。这导致一个巨大的数量的下游融合问题,并最终我们采取了严厉的步骤删除的项目文件从源的控制。

开发人员环境仍可能成为不对准,但它表明,当他们试图建立自己的事情.

使用TFS在这里,但我不认为这有差别。
我们也没有锁,有的时候必须处理与合并项目文件。我永远不会发现它是复杂的,或者多的一个问题。我们很少遇到的问题,不能自动合并,并将手工合并的进程是非常微不足道的。

只有一个告诫:检查往往!如果你做的主要变化的项目结构并不检查他们立即这些变化可以开始复合的复杂性之后合并。如果我让一个重大变化的结构的一个项目,我通常会得到大家的一个头了。我会问他们的所有检查他们目前的工作,然后照顾的合并我自己。

我发现这个近: http://www.codeproject.com/KB/macros/vcproj_formatter.aspx 如果你跑这一工具在vcproj文件,而上一个修改版本,然后你可以把它们合并起来很容易地与你最喜欢的合并文本的工具,并在外的结果是一个更加紧凑漂亮vcproj文件。

选择1和选择2不是相互排斥的-如果开发人员是初级水平,让他们使用的备选办法1(重新得到的项目文件和新的更改)如果这是更舒适用于他们。为更高级的开发,备选案文2(合并使用一个合并工具)是完美的罚款。

我认为这是一个情况,目前已经没有神奇的子弹有时,合并是一种痛苦。

我们使用的比较工具(WinMerge)合并的变化。该项目的文件(大部分)真的直接XML。这里的关键,但是,从来就没有应当有任何惊喜当合并,因为良好的通信的一部分床岩石的有效来源的控制。

同时变化 项目 是完全没有只要人们进行通信。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top