合并项目/解决方案文件是开发人员/SCM管理员在源代码控制中执行合并时的一种众所周知的灾难。
例如,常见的场景是,在两个不同的分支上开发一个项目/解决方案。当到了将其合并回主要开发线的时候,VCPROJ's (和SLNs)之间几乎没有任何相似之处。
原因是,Visual Studio 可能会改变(也确实改变)这些文件中各种类似 XML 的元素的位置。例如,配置调试和发布可能会在每次对 proj 文件进行保存操作时交换顺序。这使得很难将每个开发分支的更改轻松地合并到一起,甚至无法考虑自动合并。
我可以假设 Microsoft 正在使用某种 Perl 哈希系统来保存 vcproj 结构,因此文件在保存操作时的渲染是无序的。
首先,我想问:有人找到了一些优雅的方法来解决这个问题吗?
其次,我想提出两个建议:
请 Microsoft 重新实现上述文件,并将它们限制为某种严格的元素排序。
找到一个工具(或编写一个工具),按字母顺序递归地对 vcproj(xml 格式)和 sln(sln 格式...)文件进行排序(元素内的所有元素等)。在源文件和目标文件上使用此工具将使得可以轻松地指向(和合并)更改,希望 Visual Studio 读取排序后的合并项目或 sln 文件。
欢迎分享其他想法和思路。