在Visual Basic 6中使用Subversion
在开发/支持Visual Basic 6.0中的遗留项目的同时,我的团队即将从Visual SourceSafe迁移到Subversion,所以我有两个问题:
- 在Visual Studio 6中进行Subversion IDE集成的最佳工具是什么? (还是不值得麻烦...)
- 是否有将Subversion与Visual Basic 6.0一起使用的最佳实践? (要忽略的文件类型,等等。)
解决方案
回答
我的猜测是不要打扰集成,而只是在Windows资源管理器中使用Tortoise SVN。
至于要忽略的文件类型,请进行测试,签出,构建,并查看是否有文件更改(对于现代Visual Studio,我倾向于忽略.suo文件)
回答
我同意Windows资源管理器中的Tortoise SVN是将SVN与VB6结合使用的最佳方法。
迁移到SVN时,最大的变化是"签出"和"签入"与"更新"和"提交"并不完全相同。 。 。因此,由于VB6支持MSSCCI(一种签入/签入机制),因此任何与VB6的IDE集成都受到限制。我曾经在Visual Studio 2003中使用过TamTam SVN(http://www.daveswebsite.com/software/tamtamsvn/index.shtml),但由于发现了限制而停止了。合并/分支/责备等功能非常强大,Tortoise SVN提供了TamTam所没有的功能。 Tigris也有http://svnvb6.tigris.org/,但是我还没有尝试过。
同样,尽管我们很可能使IDE可以与VB6一起使用,但我不建议我们这样做,因为迁移到SVN的最大优势是打破了签入/签出的Source Safe理念。
回答
对于服务器端,VisualSVN Server是一个非常简单的解决方案,我们正在vmware虚拟机中运行它,而且嗡嗡作响。
如果我们是命令行专家,我真的很喜欢svn的命令行界面,那么我发现进行某些操作比使用乌龟(例如文件夹的状态)要容易一些。但是,如果我们是探险爱好者,那么从安全的世界出发,乌龟绰绰有余。
要忽略的主要事情是:
- 可重现的工件(dll,pdb,exe)
- 特定于环境的设置(即vs,csproj.user文件,.suo文件的设置文件)
回答
由于Subversion使用更新/编辑/提交周期(而不是签入/签出),因此我们在使用二进制文件时需要格外小心。 VB6中的大多数表单都包含两个文件:MyForm.frm和MyForm.frx。 * .frx文件是二进制文件,因此无法合并。
鉴于此,我将设置Subversion要求对.frx文件进行"锁定"。这意味着一次只能有一个人可以检出该文件。这样,我们将强制一次只有一名开发人员可以修改这些文件,并且始终很清楚该人当前是谁。如果我们不这样做,那么我们将面临一些重大的麻烦。
回答
根据我们计划在这些旧项目中执行的工作量,我会考虑不进行切换。
挖掘遗留代码时,拥有所有的历史和责任真的很有帮助。 SVN比VSS更好,但切换时会丢失历史记录。
如果我们将要在VB6中进行大量持续的开发,那么很值得切换到SVN,但是如果我们要继续做那么多的事情,那么是否值得回顾该项目?
我有一个类似的问题,只有旧项目在Delphi中。我认为它们是否在VB6中,只是为了可维护性而考虑将它们"升级"到VB.Net。
回答
Depending how much you're planning to do on these legacy projects I would consider not switching.
我真的建议我们切换到SVN。我知道一些项目因VSS数据库损坏而丢失了源代码。
我认为有些工具可以执行从SourceSafe到SVN的迁移。 (是的-快速的Google搜索确认了这一点。)这样,我们就不会丢失修订历史记录。
回答
要忽略的文件类型:
* .vbw
关闭项目时自动生成的工作区文件,其中包含我们已打开的文件等。
MSSCCPRJ.SCC
VB6 IDE生成的源代码控制状态文件(如果使用Windows Explorer中控制SVN的解决方案,则应禁用VB6中的源代码控制插件,并且不会生成该文件)。
- .log
如果在加载表单GUI时出现问题,则生成此文件。该文件与表单文件位于同一位置,名称与表单文件相同。
例如:MyForm.frm
生成MyForm.log
。
当然,只有在源代码管理中没有所需的日志文件时,才应该这样做。