我们公司有一个很大的VB6代码库,我们目前使用VSS,尽管我们讨厌它,但它至少集成到了VB6 IDE中。
我自己的团队正在使用.NET,现在正在研究替代SCM,比如我个人最喜欢的Git。有了Git Extensions,我们似乎可以很好地将Git命令集成到Visual Studio IDE中。
然而,有人提出了这样一个问题:Git也可以用于我们的VB6代码库吗?
当然,我假设文件本身在git仓库中可以正常工作,但毫无疑问,如果开发人员不得不使用命令行来完成所有的源代码控制,他们会抱怨。有没有人使用过VB6和Git?在VB6 IDE中有任何可用的集成吗?或者,没有IDE集成可能没有那么多麻烦?
我是第一个创建[vb6]和[git]的荒谬标签组合的人,我能得到一枚徽章吗?
9条答案
按热度按时间xdnvmnnf1#
我发现这个解决方案在我们的情况下起作用。它为前面的答案增加了一些内容,解决了我们在使用git进行项目时遇到的许多问题。
.gitattributes
字符串
.gitignore
型
vsnjm48y2#
使用Git管理VB 6项目已经有一年了。从未遇到过任何IDE集成。就我个人而言,我喜欢命令行,所以我没有看太多。我遇到的两个主要问题是:
gc0ot86w3#
你必须创建一个文件**.gitattributes**来使用windows行结束符(crlf),因为git诞生于unix。
字符串
另外,创建.gitignore文件,其中包含以下行:
型
rta7y2nd4#
这真的是一个除了其他优秀的评论KeithTheBiped,等。
但是,有可能在某种程度上强制VB 6中的即时窗口,使其像一个现代的终端窗口,但有一些注意事项。如果我们创建一个helper函数来运行命令,以某种方式捕获输出,然后使用Debug.Print将其中继回即时窗口类似于终端窗口,但没有任何交互元素。
这适用于大多数命令,但无法捕获
git push
阶段的一些输出。一个可以接受的折衷方案,为了方便无shell(imo)。我们可以使用命令提示符(
cmd.exe /c
),使用针对临时文件的1>
和2>
管道来实现这一点。我没有提供一些底层函数,但是如果你还没有的话,我会提供一些源代码。考虑以下函数:
字符串
您将需要:
一旦你完成了这一点,并可以成功地运行任何简单的执行和输出到即时窗口,如下所示:
型
从这里,你可以运行Git,并在即时窗口中显示大多数内容,可以像这样简单地使用它,但我们可以做得更好。
假设你已经安装了一个命令行Git,并且路径已经更新,可以使用它,你可以创建一些新函数(希望是在一个模块中):
型
在这里,你几乎可以从即时窗口运行Git命令。记住,Git()是一个函数,所以你必须将参数作为字符串传入...只有一个必要的特征。当然,VB会自动完成一个字符串,所以你不需要结尾,但我会包括它。使用以下语法:
型
它不允许交互式git命令(
git add -p
),但是,你可以直接暴力破解(git add . -f
)。但是,这些命令运行并直接将其输出显示到“即时”窗口中,而不需要太多其他工作。型
你懂的
从那里,你也可以自动化的东西。创建辅助函数来批量处理常用的Git命令等,或者只是消除一些笨拙的语法。使用
RunCmdToOutput
,您也可以重新使用MsgBox(如果喜欢的话),但我认为即时窗口足够直观。在某些情况下,将任何函数限制为仅在IDE中运行可能也很重要,但这是可选的。
型
shyt4zoc5#
你最了解你的开发者。他们会介意使用命令行吗?他们热衷于IDE集成吗?这些都是个人喜好。
确保最受尊敬的开发人员了解git的好处,并支持决策。
请注意,一些VB6源文件是二进制和shouldn't ever be merged的:例如
.frx
文件。我不认识饭桶,所以我不知道这是否是个问题。wgx48brx6#
VB6作为一个代码库有什么不同(即文本文件),这使得它不适合git?
文化则完全是另一回事:如果你有很多不称职的开发人员,他们不能处理命令行,那么治疗方法可能包括尽可能远离VB6。
唯一潜在的问题是windows在git世界中有点像二等公民。如果你发现git在你的环境中不能很好地工作,你可能想尝试一下bazaar或mercurial。
t8e9dugd7#
我们要这么做我们在.gitIgnore中添加了以下内容
mzsu5hc08#
我正在使用Atlassian Source树来管理我在git仓库中的VB6项目。工作正常。
如前所述,一个障碍是,当在IDE中定义标识符时,IDE会关闭并更改匹配标识符的大小写,而这些更改会产生虚假的更改。
解决方案是在文本文件中保留一个标识符块,并根据需要将它们放入每个文件的(General)(Declarations)部分,如下所示:
字符串
这将强制index的所有示例为Index,等等。如果您得到一堆IDE编辑显示为代码更改,您只需粘贴标准大小写,并再次保存文件。
zbdgwd5y9#
有一个解决方案,为旧的VB 6-IDE,VC6-IDE使用MSSCCI,并可以集成在每个IDE提供MSSCC接口的源代码控制。你可以在这里找到Visual Git。