关于svn:在Visual Basic 6中使用Subversion

关于svn:在Visual Basic 6中使用Subversion

Using Subversion with Visual Basic 6

在开发/支持Visual Basic 6.0中的旧项目时,我的团队即将从Visual SourceSafe迁移到Subversion,所以我有两个问题:

  • 在Visual Studio 6中进行Subversion IDE集成的最佳工具是什么? (还是不值得麻烦...)
  • 在Visual Basic 6.0中使用Subversion是否有最佳实践? (要忽略的文件类型等)

我同意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理念。


由于Subversion使用更新/编辑/提交周期(而不是签入/签出),因此在使用二进制文件时需要格外小心。 VB6中的大多数表单都包含两个文件:MyForm.frm和MyForm.frx。 * .frx文件是二进制文件,因此无法合并。

鉴于此,我将设置Subversion要求对.frx文件进行"锁定"。这意味着一次只能一个人签出文件。这样,您将强制一次只有一名开发人员可以修改这些文件,并且始终很清楚该人当前是谁。如果您不这样做,那么您将面临一些重大的麻烦。


要忽略的文件类型:

*.vbw
关闭项目时自动生成的工作区文件,其中包含您已打开的文件等。

MSSCCPRJ.SCC
由VB6 IDE生成的源代码控制状态文件(如果使用Windows Explorer中控制SVN的解决方案,则应禁用VB6中的源代码控制插件,并且不会生成该文件)。

*.log
如果在加载表单GUI时出现问题,则生成此文件。该文件与表单文件位于同一位置,名称与表单文件相同。
示例:MyForm.frm生成MyForm.log

当然,只有在源代码管理中没有所需的日志文件时,才应该这样做。


Depending how much you're planning to do on these legacy projects I would consider not switching.

我真的建议您切换到SVN。我知道一些项目因VSS数据库损坏而丢失了源代码。

我认为有些工具可以执行从SourceSafe到SVN的迁移。 (是的-快速的Google搜索确认了这一点。)这样,您就不会丢失修订历史记录。


我的猜测是不要打扰集成,而只需在Windows资源管理器中使用Tortoise SVN。

至于要忽略的文件类型,请对其进行测试,签出,构建,并查看是否有文件更改(对于现代Visual Studio,我倾向于忽略.suo文件)


根据您计划在这些旧项目中执行的操作,我将考虑不进行切换。

挖掘遗留代码时,拥有所有的历史和责任真的很有帮助。 SVN比VSS更好,但切换时会丢失历史记录。

如果您打算在VB6中进行大量持续的开发,那么很可能值得切换到SVN,但是如果您要进行很多工作,那么是否值得对该项目进行审查?

我有一个类似的问题,只有旧项目在Delphi中。我认为它们是否在VB6中,只是为了可维护性而考虑将它们"升级"到VB.Net。


对于服务器端,VisualSVN Server是一个非常简单的解决方案,我们在vmware虚拟机中运行它,而且运行非常顺畅。

如果您是命令行专家,我真的很喜欢svn的命令行界面,我发现进行某些操作比使用乌龟(例如文件夹的状态)要容易一些。但是,如果您是探险爱好者,那么从安全的世界出发,乌龟绰绰有余。

要忽略的主要事情是:

  • 可重现的工件(dll,pdb,exe)
  • 特定于环境的设置(即vs,csproj.user文件,.suo文件的设置文件)

推荐阅读