Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/svn/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Svn 在Visual Basic 6中使用Subversion_Svn_Vb6 - Fatal编程技术网

Svn 在Visual Basic 6中使用Subversion

Svn 在Visual Basic 6中使用Subversion,svn,vb6,Svn,Vb6,我的团队很快将从Visual SourceSafe转移到Subversion,同时在Visual Basic 6.0中开发/支持一个遗留项目,因此我有几个问题: 在VisualStudio6中集成Subversion IDE的最佳工具是什么?(或者不值得这么麻烦……) 在Visual Basic 6.0中使用Subversion有什么最佳实践吗?(要忽略的文件类型等) 我的猜测是不必担心集成,只需在Windows资源管理器中使用Tortoise SVN即可 至于要忽略的文件类型,请对其进行测试

我的团队很快将从Visual SourceSafe转移到Subversion,同时在Visual Basic 6.0中开发/支持一个遗留项目,因此我有几个问题:

  • 在VisualStudio6中集成Subversion IDE的最佳工具是什么?(或者不值得这么麻烦……)
  • 在Visual Basic 6.0中使用Subversion有什么最佳实践吗?(要忽略的文件类型等)

我的猜测是不必担心集成,只需在Windows资源管理器中使用Tortoise SVN即可


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

我同意Windows资源管理器中的乌龟SVN是将SVN与VB6一起使用的最佳方式

迁移到SVN时,您会发现最大的变化是“签出”和“签入”与“更新”和“提交”并不完全相同。因此,任何与VB6的IDE集成都是有限的,因为VB6支持MSSCCI(签出/签入机制)。我曾经在VisualStudio2003中使用过tam SVN(),但由于发现它的局限性而停止使用。合并/分支/责备等是TortoiseSVN提供的非常强大的功能,而TAM中没有。底格里斯也有,但我没有试过


同样,虽然您很有可能获得一个IDE来使用VB6,但我不推荐使用它,因为迁移到SVN的最大优点是打破了签入/签出的源代码安全理念。

对于服务器端,VisualSVN服务器是一个超级简单的解决方案,我们正在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,仅仅是为了维护性。

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

我真的建议你改用SVN。我知道有几个项目因为VSS数据库损坏而丢失了源代码

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

要忽略的文件类型:
*.vbw

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

msscprj.SCC

VB6 IDE生成的源代码管理状态文件(如果使用Windows资源管理器中控制SVN的解决方案,则应禁用VB6中的源代码管理插件,并且不会生成该文件)

*.log

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


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

VSS锁定并不意味着SCCS API需要锁定-也就是说,您可以在IDE中使用不同的SCM,并且它仍然可以按预期工作-请查看VS2005+中的Ankh。@gbjbaanb-我不是专家,但来自Ankh自己的网站:AnkhSVN 2.0实现了微软在VisualStudio2005中引入的新样式SCC VAPI,当时他们还引入了TFS。这消除了旧式MSSCI api的锁定要求和其他一些限制。“From:“[svnvb6]不符合Microsoft为源代码控制插件设计的接口。这个界面并不真正适合Subversion的集成。“我们使用了svnvb6,它工作得很好,就我个人而言,我只在更改文件标记时使用它,但在所有其他方面-乌龟是最好的。如何设置Subversion以要求锁定某些文件类型(如frx)?不幸的是,必须在每个.frx文件上分别设置svn:needs lock属性。通过一点脚本工作,我确信可以编写一个预提交钩子,自动在所有.frx文件上设置该属性,但我还没有做到这一点。你能举个例子说明这会是一个问题吗?另外,如果我单独工作,这会不会导致be问题?(我猜问题是程序员1修改了.frx文件,但没有修改.frm文件,并且他们退出了sync.Clay,您已经解决了问题。如果多人修改了.frx文件