HOWTO:在还原后修复不同步的 TFS 工作区

Posted

技术标签:

【中文标题】HOWTO:在还原后修复不同步的 TFS 工作区【英文标题】:HOWTO: Fix an out-of-sync TFS workspace after a restore 【发布时间】:2020-12-02 06:28:09 【问题描述】:

由于勒索软件病毒,我们不得不恢复我们几天前创建的 TFS 服务器代码存储库的备份映像。

幸运的是,我在本地工作区中有一个更新的副本,其中包含在灾难发生前签入的最新更改。恢复的快照没有此最新更改。所以现在我的本地工作区中的一些文件比恢复的快照中的文件更新,我的意思是我的本地工作区有一些文件包含在恢复的快照中不存在的更改。此外,尽管我的本地工作区中的某些文件与快照中的文件不同,但它们并未在团队资源管理器中标记为已签出。

由于最新的更改在我的本地工作区中(而不是在快照中,因为它们在恢复过程中丢失了)我想将我的本地工作区签入到当前恢复的快照中,以便我的本地工作区得到准确的与快照(TFS 服务器代码存储库)相同。我该怎么做?

我曾考虑在我的本地工作区执行“获取最新版本”,以便将其与快照(代码存储库)同步。我知道“获取最新版本”会发现我的本地工作空间和快照之间的差异(和要解决的冲突),然后它会自动签出必要的文件,以便我以后可以查看和签入它们。这是在这种情况下进行的正确方法吗?我对吗?另外,据我所知,执行“获取最新版本”不会在我的工作区本地删除更改,对吗?

【问题讨论】:

@LeoLiu-MSFT 最后我按照你的建议做了。似乎“获取最新版本”效果不佳(完成后,文件没有被签出)。 【参考方案1】:

看看Reconciling workspaces。如果有很多更改并且您似乎希望按原样使用您的工作区,那么还有一个等效的命令行:tf resolve。

【讨论】:

【参考方案2】:

这是在这种情况下进行的正确方法吗?我对吗?另外,据我所知,执行“获取最新版本”不会在我的工作区本地删除更改,对吗?

答案是肯定的。这确实是一个可行的解决方案。但是当我们有很多文件时,这种方法似乎需要很多时间。我们需要手动对必要的文件一一进行修改。

由于最新的更改在您的本地工作区中,您可以尝试创建一个新的工作区以将最新版本与快照(代码存储库)同步,然后将本地工作区中的所有文件复制到新工作区并替换相同的文件。

在这种情况下,本地工作空间中的修改文件存在于新工作空间中,然后我们可以将这些更改提交并推送(同步)到快照(代码存储库)。

【讨论】:

以上是关于HOWTO:在还原后修复不同步的 TFS 工作区的主要内容,如果未能解决你的问题,请参考以下文章

从SQL Server bak文件还原Team Foundation Server

重命名计算机名称导致TFS版本管理下的工作区问题的修复

将 TFS 数据库还原到新硬件后出错

TFS在构建和发布期间合并

TFS 代理构建参考错误

防止 msdeploy 在 TFS 构建后同步未更改的文件?