【问题标题】:How to get a previous version of a file如何获取文件的先前版本
【发布时间】:2010-12-10 23:25:07
【问题描述】:

我需要使用 Team Foundation Server (TFS) 在源代码管理中获取文件的早期版本,.当我尝试根据更改集获取特定版本时,会出现合并屏幕。我不想要这个,我只想获取以前的版本并检查它。我当前版本的文件已损坏,现在我只想要以前的版本。

【问题讨论】:

  • 你使用的是什么源代码控制系统?
  • 啊,我明白了,TFS 是/包含一个 SCS。没关系。

标签: tfs


【解决方案1】:

啊,听起来您想回滚(即从 TFS 的历史记录中删除一些签入)。 TFS 没有内置的方法可以做到这一点。但是,您可以使用TFS Power Tools 来完成此操作(有一个tfpt rollback 命令)。

实际上,rollback 命令只是执行您想要执行的操作。要手动执行此操作,请获取您想要的版本(无需签出文件)。将其保存在其他地方,然后检查文件(这将执行“获取最新”命令)。然后用您在别处保存的版本覆盖该版本。

或者,TFS 设置中有一个设置为“在结帐时获取最新版本的项目”,这可能是您所有问题的原因。它位于工具-> 选项中,在源代码管理->Visual Studio Team Foundation Server 下。如果已为您选中,请尝试取消选中它并查看它是否可以让您执行您正在尝试的操作。

【讨论】:

  • 谢谢,这就是我要找的。似乎 TFS 并没有真正考虑到人们可能想要进行回滚。我有大约 30 个需要回滚的文件,它们都位于不同的文件夹中。这将是漫长的一天。再次感谢。
  • 在工作文件夹的同一位置覆盖特定版本可能会导致合并问题(因为服务器已经看到新版本)。要手动解决此问题,请查看特定的变更集版本(显示历史记录 -> 选择变更集并选择查看)。然后将此文件保存到 c:\temp。然后签出当前文件并将其替换为保存在 c:\temp 中的文件
  • 另外,TFS 2010 现在在命令行中原生支持回滚命令。 TFS Power Tools 为它添加了一个选项到 Visual Studio。下一版本的 TFS 将在 GUI 中本地提供它。
  • 在 VS 2012 的 GUI 中对某些(旧)签入文件的“本机”回滚对我不起作用(它实际上做了一些事情,但没有完全回滚)。只有 bdukes 的回答中描述的手动步骤按预期工作。 TFS 不提供此功能真的很烦人。
【解决方案2】:

在合并屏幕上,您应该能够选择用服务器版本覆盖您的本地副本。这听起来像你想要做的。

但是,只有当您有待处理的更改时,才会显示合并屏幕。如果您撤消对文件的待定更改,则“获取特定版本”命令不应导致合并。

【讨论】:

  • 我需要重新表述我正在尝试做的事情。我想要与 VSS 类似的功能,我可以在其中查看历史记录、选择一个版本并回滚到该版本(使以前的版本成为当前版本)。谢谢
【解决方案3】:

嗯,也许我做错了什么。我检查了文件,然后我得到了特定的版本,输入了变更集号,我没有选中任何一个覆盖复选框。我得到合并屏幕,我告诉它覆盖本地副本。它会这样做,但随后它会取消我的结帐并说我的本地计算机上没有最新的。如果我此时结帐,它会用最新版本覆盖我以前的版本。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-06-25
    • 2020-09-23
    • 1970-01-01
    • 1970-01-01
    • 2013-08-18
    • 1970-01-01
    • 1970-01-01
    • 2017-07-08
    相关资源
    最近更新 更多