如何在TFS中恢复/撤消未更改的文件?

时间:2011-09-20 10:00:33

标签: tfs tfs2010

我想知道是否有一个有用的命令来撤消TFS中未更改的文件。

我尝试过使用“tfpt uu”命令。但它只撤消/恢复服务器和本地工作区中未更改的文件。例如。在服务器上更改但未在工作区中触摸的所有文件都保留为已签出。我想要的是恢复/撤消我工作区中未更改的所有文件。对于该场景,tfpt uu-command似乎没用。

如何在TFS中恢复/撤消未更改的文件,其中未更改文件的定义是工作空间中未更改的文件。

示例:

我有两个工作区ws1和ws2。 Ws2用于模拟在TFS中进行源更改的其他用户,ws1表示我自己的工作空间。我们有3个文件A,B和C.

  1. 查看ws1上的所有文件。 (A,B和C签出)
  2. 更改ws2中的文件A.
  3. 在ws2中签入文件A.
  4. 更改ws1中的文件B.
  5. 在ws1上执行tfpt uu。
  6. 还原/撤消的唯一文件是C.文件A和B仍然在ws1中签出

    我希望A和C都可以恢复/撤消,因为它们在ws1中没有被更改。

5 个答案:

答案 0 :(得分:4)

/noget上指定tfpt uu选项,我认为您将获得您所追求的行为。

答案 1 :(得分:1)

听起来你需要合并/解决对文件A的更改,然后才会知道文件没有改变。由于文件A已签出,因此TFS希望您在更新本地副本之前解析该文件。所以tfpt无法识别文件没有改变,因为它与(最新的)服务器版本不同。

答案 2 :(得分:0)

问题是陈旧的,但这可能有所帮助:假设工作区中的所有文件都指向相同的变更集,您可能会再次比较您的工作版本:

首先,获取您的工作版本:

tf history . /r /noprompt /stopafter:1 /version:W

然后撤消所有未更改的文件(假设上一个命令返回123456作为您的工作版本):

tfpt uu /changeset:123456 /recursive

答案 3 :(得分:0)

我遇到类似的情况,我已经分支了我的代码,然后重命名了分支,当我把它们合并在一起时,每个文件都有一个"更改"因为重命名(物理路径已更改)。

我尝试了两个选项:

  1. tfpt uu /您想要的任何选项 - 在我的特定情况下,这并没有撤消更改,因为我猜他们在技术上变化?
  2. 我遇到的另一个解决方案是撤消所有挂起的更改,然后点击" No To All"当弹出关于撤消更改文件的警告时。这个几乎有效,除了它还解除了我的新文件添加。
  3. 由于这些都不适合我,我厌倦了寻找,但想到这些选项中的一个可能适用于其他人。

答案 4 :(得分:0)

相关:Date Created/Modified attribute on files似乎使 WebDriverWait wait = new WebDriverWait(driver, 10); WebElement element = wait.until(ExpectedConditions.elementToBeClickable(By.cssSelector("elementCSS"))); element.click(); 无法正常工作,因为我手动将文件从一个分支的本地目录复制/粘贴到另一个分支的本地目录,并且它拒绝撤消任何内容,即使只有少数文件已被删除修改。

在我的情况下,修改时间戳是相同的,但创建时间戳关闭了10分钟,因为这显然是我花了多长时间将两个分支下载到我的本地开发机器。