【问题标题】:What is the difference between "Compare with Workspace version" and "Compare with Latest version"?“与 Workspace 版本比较”和“与最新版本比较”有什么区别?
【发布时间】:2013-12-11 09:36:03
【问题描述】:

我正在使用带有 TFS 的 Visual Studio 2012。 每当我想比较我签出的文件时,我有两个选项可供选择:

  1. 与工作区版本比较
  2. 与最新版本比较

有什么区别?

【问题讨论】:

    标签: visual-studio visual-studio-2012 version-control tfs


    【解决方案1】:

    与最新版本比较 似乎很清楚。它将文件与 TFS 中的最新版本进行比较。因此,您将了解检入源代码管理的最新版本与您要比较的任何文件夹之间的所有差异。

    与 Workspace 版本比较 可能会令人困惑,但实际上非常简单。 TFS 会跟踪您检索到工作区的文件的版本。这通常是最新版本,或非常接近的版本,但不一定是这种情况

    当使用 Get Specific Version 选项时,您可以将文件的任何版本检索到本地工作区。您甚至可以将不同版本的文件检索到您的工作区中。当您选择此选项时,将与您工作区中当前的版本进行比较。

    【讨论】:

    • “当您选择此选项时,将与当前工作区中的版本进行比较。”与什么比较?
    • 默认使用磁盘上的版本。或者您选择作为目标路径的任何版本。最后,您最终负责选择源版本和目标版本进行比较。
    • 使用您上次下载到所选工作区的变更集版本以及当前磁盘上的任何内容。
    • 为了更清楚地说明,获取工作区版本可能与最新版本不同或与最新版本相同。这完全取决于您从存储库中提取的内容
    • 示例:您在一个团队中,并在 3/5 获得了一个文件。您修改它但不签入。在 5/5 上,您与上一个版本进行比较,您发现发现的差异比预期的要多:那是因为其他人对同一文件进行了更多更改。但是,如果您与 Workspace 版本进行比较,您只会得到本地更改与最初检索源文件时的差异。检查只有你改变了什么非常有用......
    【解决方案2】:
    • workspace 版本比较实际上是将编辑后的文件与 您签出时的文件版本进行比较(比较 独家您的更改)。

    • 最新版本比较会将编辑后的文件与您的代码存储库中存在的文件的最新版本进行比较,即可能包括您的同事所做的更改

    http://codereferences.blogspot.ca/2012/03/tfs-compare-with-workspace-version.html

    【讨论】:

    • serhio,您和 @jessehouwing 正在说明 Workspace 版本比较类型的冲突行为。听起来他说如果工作区本身配置为使用最新版本,则将使用最新版本的文件。但是您所说的意味着源文件不一定是最新版本,而是结帐时文件的版本?
    • 这是最简单的解释。 Workspace 不会自动从服务器检索最新版本。它保留您获得的最新文件。因此,假设您获得最新版本,请编辑文件。同时,您的合作开发者在您获得最新信息后签到。您的工作区不知道您的共同开发人员签入的更改。此时,与工作区的比较和与最新版本的比较会有所不同。
    • @serhio我没这么说。这是结帐时的版本。通常这是结帐时最晚的时间。如果时间流逝 Workspace Version 可能会变成 latest-18 或其他东西。但您也可以显式检查变更集版本。即使 f 最新是 234,如果您检查版本 123 的工作区,那么 123 将是您的工作区版本。因此 Workspace 版本可能意味着很多事情,尤其是当您开始使用它来构建旧版本、挑选更改或进行部分合并时,这会变得非常重要且非常方便。
    【解决方案3】:

    @serhio 2014 年 3 月 28 日的回答是一个很好的叙述性回答。但是,我相信很多人(包括我自己)都需要一个例子来支持它,这里是:

    1. 对于所有人来说,“最新版本”= 变更集 #1。
    2. 您“获取最新信息”。
    3. 对您而言,“工作区版本”= 变更集 #1。
    4. 您进行更改。
    5. 开发人员 B “获取最新信息”。
    6. 对于开发人员 B,“工作区版本”也 = 变更集 #1。
    7. 开发者 B 进行更改。
    8. 开发者 B“签到”。
    9. 对于所有人来说,“最新版本”= 变更集 #2。
    10. 对于开发人员 B,“工作区版本”= 变更集 #2。
    11. 对您来说,“工作区版本”仍然 = 变更集 #1。
    12. 您“获取最新信息”、“合并冲突”(如有必要)和“签到”。
    13. 对于所有人来说,“最新版本”= 变更集 #3。
    14. 对您而言,“工作区版本”= 变更集 #3。
    15. 对于开发人员 B,“工作区版本”仍然 = 变更集 #2。

    【讨论】:

      【解决方案4】:

      重申答案:

      本地文件始终是您正在处理的文件。

      服务器文件可以是:

      1. 包括所有其他签入的最新版本。 (您会看到您的变化,以及其他人的变化。)

      2. 您签出时的版本(您只会看到您的更改,即使其他人已经签入)。

      如果自您结帐后没有其他人签入文件,则上述两者产生完全相同的结果。

      因此,如果您想将所做的工作与开始时的工作进行比较,请选择 Workspace 版本

      如果您想将自己所做的与其他人所做的进行比较,请选择最新版本

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-12-02
        • 2020-08-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多