更改映射时TFS删除了我的文件

Leo*_*ens 4 version-control tfs visual-studio-2012

这里有很多代码我一个很大的解决方案.由于TFS的一些问题,我想创建一个新的"干净"存储库.我删除了到旧存储库的映射,并尝试创建新映射.这导致了一个错误,即已经有一个映射到我的解决方案.我去了Source Control Explorer- > Workspaces并删除了映射到我的解决方案.之后,我能够将我的新存储库映射到我的解决方案.

但当我检查我的硬盘时,我几乎心脏病发作:TFS删除了我的所有代码文件!目录和依赖关系仍然存在,但我的所有项目文件,我的解决方案文件和所有代码都消失了!

请StackOverflow,帮帮我吧!这是很多工作现在已经消失,我真的非常迫切需要它:(

编辑:我目前正在尝试使用几个文件恢复工具(如Recuva)恢复我的文件,但没有一个可以找到任何已删除的更改.但是这些文件真的不见了,Windows搜索找不到它们,也没有隐藏它们.谁能告诉我为什么会这样?这些文件仍然在我的SSD上吗?

Jas*_*ams 5

像TFS这样的源控制系统都在非常相似的路线上工作.他们将服务器的代码版本视为"代码" - 它是主副本,并由服务器"拥有".然后,您可以在PC上获取代码的副本(通过添加工作区映射,告诉它您希望它放在此副本的位置).您可以更改代码副本,然后检入它们以将它们应用回服务器上代码的主版本.

因此,如果您更改工作区映射(例如,将代码副本的位置从文件夹A更改为文件夹B),您告诉源控制系统的是"请取走位置A中的代码副本,并把它放在B".所以这就是它删除所有"你的"代码的原因.它不是"你的"代码,它是服务器代码的副本 - 你要求它把它放在你的PC上的其他地方......所以它确实如此.

但是,如果您编辑了工作区中的任何代码,那么文件就会被检出,在这种情况下,TFS会知道您有待处理的更改,并且它不应该删除这些文件 - 它应该已经报告了您尝试更改包含挂起更改的工作空间映射时出错.

唯一不会发生这种情况的方法是手动将文件更改为可写并在Visual Studio/TFS之外对其进行更改,以便TFS不知道您已进行了更改.如果您"秘密"更改了某些文件,TFS可能认为它们没有更改,因此会永久删除它们.这些文件可能不会显示在文件恢复工具中,因为要求TFS重新定位工作区,您可以将其删除,然后立即重新获取它们(进入新文件夹),这几乎肯定会覆盖已删除的数据文件.

如果您的更改可能已经签入,那么您可以像这样找到它们:在TFS源代码管理视图中转到您的团队项目.右键单击项目,然后选择"查看历史记录"选项.这将以反向历史顺序列出项目的所有签到 - 如果您签到,那么您应该在此处看到您的签到.(您可以双击历史记录中的任何变更集条目以查看已更改的文件列表,如果您右键单击任何文件,则可以"比较..."以查看准确说明所做更改的差异)

如果更改不在您的签到历史记录中,那么我担心您已经丢失了它们.

您可能已经学会了这一点,但重要的是要学会正确使用源代码控制等工具 - 它们是有用且功能强大的工具,但如果您不了解它们的工作方式,它们就会很危险.


小智 3

如果您在删除映射之前检查了所有内容。来源几乎都在仓库中。但如果没有,它已经消失了,抱歉:(