20

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

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

7 回答 7

16

我同意 Windows 资源管理器中的 Tortoise SVN 是在 VB6 中使用 SVN 的最佳方式。

您会发现迁移到 SVN 的最大变化是“签出”和“签入”的概念与“更新”和“提交”并不完全相同。. . 因此,任何 IDE 与 VB6 的集成都受到限制,因为 VB6 支持 MSSCCI,一种签出/签入机制。我曾经将 TamTam SVN ( http://www.daveswebsite.com/software/tamtamsvn/index.shtml ) 与 Visual Studio 2003 一起使用,但因为我发现它有限制而停止了。合并/分支/归咎等是 Tortoise SVN 提供的非常强大的功能,而 TamTam 中没有。底格里斯也有http://svnvb6.tigris.org/,但我没试过。

同样,虽然您很可能得到一个与 VB6 一起工作的 IDE,但我不推荐它,因为迁移到 SVN 的最大优势是打破签入/签出的源代码安全理念。

于 2008-08-23T23:33:46.610 回答
12

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

鉴于此,我将设置 Subversion 以要求对 .frx 文件进行“锁定”。这意味着一次只有一个人可以签出文件。通过这样做,您将强制一次只有一个开发人员可以修改这些文件,并且始终清楚该人当前是谁。如果你不这样做,你就会让自己头疼不已。

于 2008-08-24T01:15:53.307 回答
5

根据您计划在这些遗留项目上做多少,我会考虑不切换。

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

我认为有一些工具可以执行从 SourceSafe 到 SVN 的迁移。(是的——快速的谷歌搜索证实了这一点。)这样你就不会丢失修订历史。

于 2008-08-24T15:00:50.673 回答
5

要忽略的文件类型:

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

MSSCCPRJ.SCC
VB6 IDE生成的源代码管理状态文件(如果你使用在Windows资源管理器中控制SVN的解决方案,你应该在VB6中禁用源代码管理插件,这不会生成)。

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

当然,只有在源代码控制中没有所需的日志文件时,您才应该这样做...

于 2009-10-07T08:06:49.087 回答
3

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

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

于 2008-08-23T23:03:43.873 回答
1

对于服务器端,VisualSVN Server 是一个超级简单的解决方案,我们在 vmware 虚拟机中运行它,并且它嗡嗡作响。

如果你是一个命令行人,我真的很喜欢 svn 的命令行界面,我发现执行某些操作比乌龟更容易混淆,例如文件夹的状态。但如果你是一个探险迷,乌龟就绰绰有余了,它来自一个来源安全的世界。

要忽略的主要内容是:

  • 可重现的工件(dll、pdb、exe)
  • 环境特定设置(即 vs 的设置文件、csproj.user 文件、.suo 文件)
于 2008-08-24T00:43:07.317 回答
1

根据您计划在这些遗留项目上做多少,我会考虑不切换。

在挖掘遗留代码时,了解所有历史和指责确实很有帮助。SVN 比 VSS 好几英里,但是当你切换时你会丢失历史。

如果您要在 VB6 中进行大量持续开发,那么可能值得切换到 SVN,但如果您要在未来做这么多工作,是否也值得审查该项目?

我有一个类似的问题,只有遗留项目在 Delphi 中。如果它们在 VB6 中,我想我会考虑将它们“升级”到 VB.Net,只是为了可维护性。

于 2008-08-24T13:31:38.203 回答