合并项目/解决方案文件是开发人员/ SCM管理员在其源代码管理中执行合并的众所周知的灾难.
举例来说,一个常见的场景:开发是在两个不同分支的项目/解决方案上完成的.当合并回主要开发线时,VCPROJ(和SLN)之间的相似性非常小.
原因是,Visual Studio可能会更改(并更改)这些文件中各种类似XML的元素的位置.例如,Configurations Debug和Release可以在proj文件上的每次保存操作时交换顺序.这使得无法轻松地合并来自每个开发分支的更改,甚至不考虑自动合并.
我可以假设Microsoft正在使用一些perl散列系统来保存vcproj结构,因此在保存操作时不会对文件进行渲染.
我首先想问:有没有人找到一些优雅的方法来解决这个问题?
其次,我想提出两点建议:
请微软重新实现上述文件,并将它们限制为某些严格的元素排序.
找到一个工具(或写一个),按字母顺序,递归地(元素中的所有元素等)对vcproj(xml格式)和sln(sln格式...)文件进行排序.在源文件和目标文件上使用此工具可以轻松指向(并合并)更改,希望Visual Studio读取已排序的合并项目或sln文件.
欢迎任何其他想法和想法.