【问题标题】:How to debug old versions of software?如何调试旧版本的软件?
【发布时间】:2009-07-10 19:06:46
【问题描述】:

注意:目前使用 Perforce 作为 CM 工具。

我目前做了几个软件调试版本 [仅调试文件 (.pdb) 和二进制文件 (.dll 和 .exe)]。在每个版本中,我都会将用于生成二进制文件的所有文件检查到我们的 CM 工具(基线)中。然后我签出文件并继续进行更改。目前,如果其中一个版本出现问题需要我们对其进行调试,我将不得不将代码恢复为使用的版本。

我的问题是,我应该如何轻松调试旧版本?如果我从刚刚做的基线创建一个分支,那么我可以轻松地构建以前的版本进行调试,但是比这更远呢?我不想每次做基线时都进行分支(很确定我不想这样做)。

我知道使用 VHDL,您可以使用测试点创建构建,并使用 Xilinx 工具调试任何构建的 VHDL 版本。是否有类似的方法可以在 VS 中执行此操作(可能使用 .pdb 文件和一些外部工具)?

您如何进行基线修订以便可以轻松调试旧版本?

【问题讨论】:

  • 这就是为什么在分支操作便宜且简单的情况下使用版本控制工具会有所帮助的原因。我使用 SVN - 分支和副本基本上是惰性副本,因此如果没有进行任何更改,则不会在复制中占用新空间。抱歉,我知道这不是答案...
  • 您的源代码管理是否为您提供了创建标签而不是分支的选项?标签很便宜,因此您可以为每个版本制作一个标签,然后在需要修复错误时从标签中分支。

标签: c# debugging version-control configuration-management


【解决方案1】:

Eric Sinc 有一个很棒的 Source Control HOWTO,涵盖了这个主题(以及更多内容)。

我强烈推荐阅读它,因为这个人知道他的东西。

您最感兴趣的是Chapter 6: HistoryChapter 7: Branches

当我学习源代码控制和软件发布策略时,这些东西对我很有帮助。

【讨论】:

    【解决方案2】:

    使用 p4,您无需创建分支即可“回到过去”。您所要做的就是同步到适当的标签或更改编号。例如,如果您要重新创建 ProductX 的 1.1 版,并且 p4 中的最后一次更改是更改编号 2000,您可以执行以下操作:

    p4 sync //depot/ProductX/...@2000
    

    或者如果使用了标签,例如“Release1.1”,您可以这样做:

    p4 sync //depot/ProductX/...@Release1.1
    

    或者,如果您无法弄清楚这些,您甚至可以尝试在某个日期进行同步。如:

    p4 sync //depot/ProductX/...@2009/02/01:12:15:00
    

    有关 p4 中有关文件修订的更多信息,请尝试以下操作:

    p4 help revisions
    

    【讨论】:

      【解决方案3】:

      警告 - 对我来说已经有一段时间了:

      对于 perforce,我可能会继续“标记”每个版本(在 perforce 中,标记文件会创建一个标签)

      然后你可以签出一个标签来调试它。 如果您需要进行更改并针对该旧版本推出“修补程序”,您可以从该标签而不是从 HEAD 创建一个分支。

      标记很简单,“p4 tag -l release2.0 //depot/bch/...”

      从标签分支并不难,您需要创建一个新分支然后从源标签集成:“p4集成-b [分支名称] -s //depot/bch/...@release2.0 "

      请注意,您也可以标记代码的以前(历史)版本,或者也可以从以前的提交创建分支。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2016-03-02
        • 1970-01-01
        • 1970-01-01
        • 2014-09-26
        • 2014-06-23
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多