如何处理VB6.vbp文件引用的更改
我们的VB6家伙是上一次RIF(减少兵力)的一部分。他所做的工作已经由我和另一个开发人员分担。我们经常同时对项目进行更改。这不是CVS的问题,因为我们在不同的领域工作。然而,VB6似乎会在每次我们任何一方接触项目时修改参考部分并更改路径。由于我们没有为源代码树设置完全相同的路径,因此在vbp文件上始终会遇到合并冲突如何处理VB6.vbp文件引用的更改,vb6,Vb6,我们的VB6家伙是上一次RIF(减少兵力)的一部分。他所做的工作已经由我和另一个开发人员分担。我们经常同时对项目进行更改。这不是CVS的问题,因为我们在不同的领域工作。然而,VB6似乎会在每次我们任何一方接触项目时修改参考部分并更改路径。由于我们没有为源代码树设置完全相同的路径,因此在vbp文件上始终会遇到合并冲突 除了改变设置以获得相同的目录结构这一显而易见的方法外,还有其他方法吗?我建议两件事: 除非将文件添加到项目中,否则不要提交.vbp 将.vbp标记为只读,并将其签入回购协议。当用户签
除了改变设置以获得相同的目录结构这一显而易见的方法外,还有其他方法吗?我建议两件事:
根据您的版本控制系统,可以自动解决此问题。Subversion和Mercurial都支持钩子—由某些事件触发的脚本,如签出、更新或提交。我们编写了一个在提交时触发的相当简单的脚本:它查看提交包中是否有.vbp,如果有,则运行一个“正常化”例程
将此脚本连接到新的VB项目需要30秒。与其他手动方法相比,它的优点是您不必有意识地处理VBP文件。只需将其与其他所有内容一起提交,脚本就会处理其余部分。正如C-Pound大师在回答中所说的,只有在确实需要时才签入.vbp文件,这并不常见。另外,我前一段时间问了一个简单的问题:VBP中DLL或OCX引用的路径完全不重要,我认为它们甚至没有被使用。VB6将使用它通过注册表查找找到的DLL的位置。但是,GUID和版本号是关键-如果这些更改出乎意料,您必须找出原因。我要添加第三件事,以确保VBP的所有必要更改都已签入。从安装了已知版本的组件的计算机上生成发布版本,并从一个干净的目录开始(以确保所有必要的文件都在版本控制中)。实现这一点的最好方法是自动构建;用Python“连接”脚本对我来说也不是一件30秒的工作。你能,有机会,和我分享脚本/把它放在你的答案上吗?对不起,我不能分享代码。“连接脚本”是指将脚本作为钩子附加到存储库的.hgrc中的预提交事件。因此:
[hooks]
precommit.normalise=“使用您选择的语言编写脚本的路径”
我不是指编写脚本本身。这肯定需要30秒以上的时间,但我认为我对它的描述基本上就是你需要的所有规格。我理解。我已经自己做了这样的正常化程序。花了3个月的时间,而不是30秒。写;-)。如果有人需要它,我已经准备好在开放许可下发布它——尽管问吧。