【问题标题】:TFS: comparing shelveset files with local versionTFS:将搁置文件与本地版本进行比较
【发布时间】:2008-10-06 08:33:06
【问题描述】:

查看搁置集中的文件时,我想选择将文件与我当前的本地版本进行比较。不幸的是,唯一可用的选项是“With Unmodified”、“With Workspace”(我想这就是答案,如果它没有被禁用的话)和“With Latest”。

有什么想法吗?

【问题讨论】:

  • +1。我认为 OP 寻找的是 Visual Studio 提供的选项,用于将搁置版本与本地工作区版本进行比较。我还想将搁置集与本地文件夹进行比较,它应该只显示不同的文件。基本上与在 Source Explorer 中进行服务器到本地文件夹比较的方式相同。
  • 荒谬的是,在 2015 年,我们仍然不得不使用这些 hack-y 方法来执行如此基本、简单的操作。为什么仍然没有“With Local”选项?
  • @JasonL。我认为答案显然是 TFS 开发人员都使用 GIT 或 Mercurial,因此没有意识到他们自己的垃圾软件的缺点。
  • VS 2017 还没有这个功能。

标签: tfs


【解决方案1】:

使用 Team Foundation Sidekicks 将 Shelveset 导出到本地文件夹,并使用文件比较工具与本地版本进行比较。

【讨论】:

    【解决方案2】:

    高达How can I easily diff/compare 2 shelvesets in TFS?

    使用 VS2013 ShelvesetComparer 或 VS2012 ShelvesetComparer,将本地版本搁置到另一个搁置集中,然后在两个搁置集之间进行比较...

    虽然这会产生另一个不需要的搁置集,并且您无法在文件比较编辑器中编辑本地。

    【讨论】:

    • 这无疑是最好的选择。感谢分享:)
    • 这个工具有 VS2015 或 2017 的版本吗?
    【解决方案3】:

    在 VS2015 更新 3 中:

    1. 转到待定更改 > 操作 > 查找搁置集
    2. 选择要比较的搁置集,右键单击并选择查看 搁置详细信息
    3. 右键单击文件,选择打开
    4. 右键单击选项卡,选择复制完整路径
    5. 在解决方案资源管理器中,右键单击文件,选择 比较...
    6. 将完整路径粘贴到Source Path中并点击OK

    【讨论】:

    • 这不起作用。我假设“工作区版本”是您修改的文件所基于的实际签入文件。
    • 之前的方向与最新的本地签入版本(可能是也可能不是最新的服务器版本)相比。我已经更新以反映当前的工作状态。
    • 这确实有效。但是,一次执行一个文件并进行大量更改是非常乏味的。存在此功能的事实让我更加失望的是,Microsoft 没有看到将其作为选项添加到“比较”对话框“源/目标”下拉菜单的价值。
    【解决方案4】:

    我认为在 Visual Studio 中无法将搁置的版本与本地版本进行比较,但我会很高兴地纠正这个问题。

    【讨论】:

      【解决方案5】:

      虽然这不是理想的方法,但根据您的比较工具,您可能会告诉它将搁置的版本与本地版本(工作区)进行比较。我使用 Beyond Compare,这允许您打开一个文件进行比较。因此,我从搁置集中与“最新”进行比较,然后将“最新”替换为我的本地工作区版本。

      不幸的是,我刚刚检查了内置的比较工具,它没有提供这个选项。

      【讨论】:

        【解决方案6】:

        这是一个有效的简单技巧:

        1. 点击“取消搁置”
        2. 选择合适的搁置集
        3. 点击“详细信息”按钮
        4. 右键单击要比较的文件
        5. 点击“查看”
        6. 这会在您的文本编辑器中打开,将其保存到您的桌面或您喜欢的任何位置。
        7. 打开您的文件差异程序并将保存的版本与您的本地版本进行比较。

        简而言之,保存您从服务器检索到的搁置版本的副本,然后使用您的差异工具进行手动比较。

        【讨论】:

          【解决方案7】:

          很长一段时间以来,我一直在寻找一种方法来做到这一点。我想知道创建一个 vs.net 插件来为你做这件事有多难。

          【讨论】:

            【解决方案8】:

            在 TFS 中,创建一个新的(临时)工作区,并将其映射到一个新的本地文件夹。 将最新版本获取到新工作区中,然后将搁置集解开到新工作区中。 这为您提供了应用了搁置集的源的临时本地副本。 然后改回原来的工作区,点击file => source control => compare。然后输入原始工作空间和新临时工作空间的本地文件夹路径,将您的原始本地版本与 lcoal shelevest 版本进行比较。

            【讨论】:

              【解决方案9】:

              这有点费力,但确实可以:

              1. 右键单击解决方案中的任何文件 资源管理器并选择“取消搁置” 待更改...'来自上下文 菜单。

              2. 在“取消搁置”对话框中双击相关搁置集。

              3. 双击要比较的文件。这将在记事本中打开文件的 sheleveset 版本。

              4. 将文件保存在本地计算机上的某个位置。

              5. 关闭所有对话框。

              6. 在解决方案资源管理器中右键单击文件的本地工作区版本,然后从上下文菜单中选择“比较”。

              7. 将目标路径更改为您之前保存的文件的路径,然后单击“确定”。

              【讨论】:

              • 我不认为这是正确的。刚刚尝试使用 tfpt2008,评论选项仅与以前或最新的比较。
              • 很抱歉,您是对的 TheSean。看起来我在这个上犯了一个错误。我会相应地编辑我的答案。
              • 感谢您指出我的错误 TheSean。希望我的新答案能完成这项工作,即使只是比较两个文件的过程有点长。
              • 这比使用 TFS 电动工具容易得多
              猜你喜欢
              • 2019-08-02
              • 2011-12-23
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2021-12-02
              • 1970-01-01
              • 2016-04-07
              • 1970-01-01
              相关资源
              最近更新 更多