【问题标题】:VS2012 - TFS is changing objects from lower case to Upper case (VB6)VS2012 - TFS 将对象从小写更改为大写 (VB6)
【发布时间】:2017-01-03 17:44:59
【问题描述】:

我今天刚开始在使用 VS2012 和 TFS 时遇到这个问题。

我们的 VB6 类存储在 Team Foundation Server 中。

我检查了一个 (VB6 *.cls) 类进行编辑(在 VS2012 TFS 中),然后在 Visual Basic 6 IDE 中对其进行了编辑,在类中大约 8900 行中更改不超过 20 行,然后保存类。

不幸的是,当我尝试将我的更改与 TFS 中的最新版本进行比较时,我收到了数百个更改,因为 Visual Studio 或 TFS 将所有 Adodb. 更改为“ADODB”。如下图所示

这让我的同事很难审查我的代码更改,因为应该不会超过 20 个......

编辑:看起来是 VB6 做了所有这些更改......

我需要改变什么来解决这个问题?

【问题讨论】:

  • TFS 不会改变任何东西。这将破坏它作为源代码控制工具的目的。
  • 在您所做的更改中,adodb 是否被更改为 ADODB?如果未定义变量名,则 VB6 IDE 有标准行为。诚然,您将不得不尝试实现这一点,但也许如果您只签出 .cls 并在项目上下文之外打开它,您将失去对完整 ADODB 类定义的引用,然后如果您无辜地编辑了ADODB 前缀,您会发现 VB IDE 会盲目地将每个匹配的字符串更改为相同的大小写。这是设计使然,并说明了为什么编辑 VB6 项目的单个文件是不好的。
  • @VanquiishedWombat: 不,不是那样的......我只是将代码添加到现有函数中 - 在 VB6 IDE 中
  • @OurManInBananas - 好的,谢谢你的纠正。
  • 我不确定这个问题是否真的是重复的,但这里有很多更多信息:stackoverflow.com/questions/1064858/…

标签: visual-studio-2012 vb6


【解决方案1】:

这不是 TFS 问题。当 VB6 认为对象或变量的声明改变了它的大小写时,它会这样做。

但是您可以在 TFS 中解决这个问题。将 TFS 配置为使用支持不区分大小写比较的外部比较工具,例如 Beyond Compare 或 WinMerge(还有很多其他工具)。

【讨论】:

  • 投我一票。但是,尽管您说的是真的,但如果 OP 在项目上下文之外编辑了文件,那么他肯定没有对其进行测试,并且由于缺少简单的 ctrl-F5 运行测试,可能会产生各种麻烦。不好的做法。
  • @VanquiishedWombat - 我经常在 vb6 中看到这种行为,即引用的对象类型完全大写,反之亦然。从来没有费心去尝试弄清楚为什么/何时/如何 vb6 决定这样做。我完全希望 OP 在加载了完整项目的 vb6 IDE 中进行编辑,而不是在它之外。
  • 同意这不太可能,但我没有看到 VB6 IDE 重新封装它知道的变量 - 只有在输入新代码并引用尚未变暗的变量时才会重新封装。让我们看看OP怎么说。如果我的假设不正确,我很高兴。
  • @VanquiishedWombat:它可以编译,运行 dll 没有问题
  • 这确实是一个众所周知的 VB6 问题,正如 in this question 所讨论的那样。有一个workaround 可以防止这种情况发生,但它涉及一些工作。相反,进行不区分大小写的比较非常容易。
猜你喜欢
  • 1970-01-01
  • 2023-04-05
  • 2010-11-24
  • 1970-01-01
  • 2010-09-25
  • 1970-01-01
  • 2012-03-08
  • 2021-08-14
相关资源
最近更新 更多