【问题标题】:Rebuilding historical builds through TFS with version numbers通过 TFS 使用版本号重建历史构建
【发布时间】:2011-08-18 08:10:00
【问题描述】:

我有自动构建编号设置,基于构建日期/名称,使用来自 Wintellect 的 John Robbins 提出的方法,描述为 here。因此,版本/资源文件会在构建时自动创建,但不会签入。
我想知道如何解决重建历史版本(基于标签)并在其中包含原始版本号/名称的问题。是否可以检测到 MSBuild 的“GetVersion”参数并尝试从中重新创建原始构建名称?
无论如何,这是一种理智的方法吗?您看到了哪些替代方案?

【问题讨论】:

    标签: tfs msbuild


    【解决方案1】:

    构建特定的变更集并不容易(尽管可能,如果您将变更集编号传递到构建脚本并修改构建的“获取最新”部分)。

    但是,一种更简单的处理方法是创建代码的分支。您可以在特定日期或变更集进行分支,这将从该时间点创建代码副本。然后可以将您的构建脚本指向此代码。

    关于您的版本控制问题:您可能会发现,唯一明智的做法是硬编码所需的版本号。我对您的版本编号策略的理解是,它与您可以从源中派生的任何内容(例如变更集编号、日期或文件内容)无关,并且没有签入 - 所以重新计算它会很复杂!

    【讨论】:

    • 我推荐使用分支方法。您永远无法真正确定使用变更集版本或标记 TFS 工作方式实际选择了哪些版本。分支既便宜又准确
    • @tbergstedt 您能否提供一些链接来描述此变更集/标签行为?对于试图回到以前版本的人来说,这听起来确实是个大问题
    • 这里有一个简短的解释:"...标签不代表一个时间点,而是一个时间点的集合。这使得它很难在列表中显示与变更集混合,因为列表的“正确”顺序不正确。因此,我们将变更集列表和标签列表分开处理。”来自blogs.msdn.com/b/bharry/archive/2005/11/18/494439.aspx
    • @dan-puzey 在构建时进行分支的解决方案似乎非常好,但我有点担心它会在存储库中造成混乱 - 你有什么方法可以让它保持驯服吗?如果在构建达到一定质量时创建分支,那将是非常好的 - 这也可以自动化吗?
    • Auto-branch on build 使用tf branch 命令应该非常可行,例如tf branch dev ..\builds\2011-08-22 /noget。让它依赖于质量应该只是尽可能晚地放置分支命令的问题,对吗?但我会对此非常严格;被树枝淹没的风险很高——如果你明白我的意思,它们很便宜但不是免费的。我会使用一些逻辑来仅将最后一个成功的构建保留在一个版本中,或者类似的东西。
    【解决方案2】:

    您提出问题重建历史构建,但实际上重建历史更改集或标签,我知道您的意思,但我想告诉您我需要说的,所以我不认为我们需要构建标签使用特定名称,标签或更改集可以根据需要进行许多构建,并且由于我们在内部版本号中使用日期和时间,因此使用当前时间和日期进行构建而不是旧版本会更现实

    谢谢

    M.拉德万

    【讨论】:

    • 您能否重写您的答案以包含多个句子?我不确定这是否有意义!
    猜你喜欢
    • 2011-01-11
    • 2016-08-11
    • 2019-02-18
    • 1970-01-01
    • 2014-11-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多