我的团队很快就要从Visual SourceSafe迁移到Subversion,同时在支持开发一个基于Visual Basic 6.0的旧项目。因此,我有几个问题:
- 在Visual Studio 6中,Subversion最好的IDE集成工具是什么?(或许这并不值得麻烦...)
- 是否有任何在使用Subversion与Visual Basic 6.0一起的最佳实践?(例如要忽略的文件类型等)
我同意使用Windows资源管理器中的Tortoise SVN是在VB6中使用SVN的最佳方式。
您在迁移到SVN时最大的变化是“Check out”和“Check in”的概念与“Update”和“Commit”不完全相同……因此,任何与VB6集成的IDE受限于VB6支持MSSCCI,即一种检出/检入机制。我曾经使用过TamTam SVN (http://www.daveswebsite.com/software/tamtamsvn/index.shtml) 与Visual Studio 2003,但由于发现它的局限性而停止使用。合并/分支/责备等都是Tortoise SVN提供的非常强大的功能,这些功能在TamTam中没有。Tigris也有http://svnvb6.tigris.org/,但我没有尝试过。
同样,虽然您可能会使IDE与VB6配合工作,但我不推荐这样做,因为迁移到SVN的最大优势是打破Source Safe的检入/检出哲学。
由于Subversion使用更新/编辑/提交循环(而不是签入/签出),因此您需要特别注意二进制文件。VB6中的大多数窗体由两个文件组成:MyForm.frm和MyForm.frx。*.frx文件是二进制文件,因此无法合并。
考虑到这一点,我会设置Subversion对.frx文件进行“锁定”。这意味着一次只能有一个人检查该文件。通过这样做,您将强制只有一个开发人员可以同时修改这些文件,并且始终清楚当前是谁在进行修改。如果您不这样做,那么您将会遇到一些大问题。
TortoiseSVN\Settings\General\Subversion configuration file
打开文件。然后在[auto-props]
中加入*.frx = svn:needs-lock
。 - MarkJ*.vbw
工作区文件,当您关闭项目时自动生成,包含您打开的文件等信息。
MSSCCPRJ.SCC
由VB6 IDE生成的源代码控制状态文件(如果您选择在Windows资源管理器中控制SVN,则应禁用VB6中的源代码控制插件,这将不会生成该文件)。
*.log
如果加载表单GUI时出现问题,将生成此文件。该文件与表单文件位于同一位置,并具有与表单文件相等的名称。
示例: MyForm.frm
会生成 MyForm.log
文件。
当然,如果您没有需要放入源代码控制的日志文件,那么您可以忽略以上文件。
根据您计划在这些传统项目上执行的工作量,我建议您不要进行转换。
我真的建议您切换到SVN。我知道有一些项目因为VSS数据库损坏而丢失了源代码。
我认为有一些工具可以将从SourceSafe迁移到SVN。(是的-快速谷歌搜索确认了这一点。)这样,您就不会失去修订历史记录。
我猜不必麻烦自己去整合,直接在Windows资源管理器中使用Tortoise SVN即可。
至于要忽略的文件类型,可以测试一下,检出、构建,看看是否有文件发生了变化(对于现代的Visual Studio,我倾向于忽略.suo文件)。
对于服务器端,VisualSVN Server是一个超级简单的解决方案,我们正在虚拟机中运行它,并且它一直很顺畅。
如果你是一个命令行用户,我真的很喜欢svn的命令行界面,我发现它比tortoise更容易理解某些操作,例如文件夹的状态。但是如果你是一个资源管理器的粉丝,tortoise已经足够了,这来自于源安全的世界。
需要忽略的主要内容包括:
根据你在这些遗留项目上计划做多少工作,我会考虑不要切换。
当挖掘遗留代码时,拥有所有历史记录和责任非常有帮助。 SVN比VSS好得多,但是当你切换时,你将失去历史记录。
如果你将在VB6中进行大量持续开发,那么切换到SVN可能是值得的,但是如果你将来要做这么多工作,是否也值得审查项目?
我有一个类似的问题,只是遗留项目是用Delphi编写的。如果它们是VB6,我认为我会考虑将它们“升级”到VB.Net,以便更易于维护。