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

2024-01-09

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

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

请 StackOverflow 帮助我!这是很多工作现在已经消失了,我真的非常需要它回来:(

Edit:我目前正在尝试使用几个文件恢复工具(如 Recuva)来恢复我的文件,但它们都无法找到任何已删除的更改。但这些文件确实消失了,Windows 搜索找不到它们,而且它们也没有被隐藏。谁能告诉我这是为什么?那么这些文件还在我的 SSD 上吗?


像 TFS 这样的源代码控制系统的工作原理都非常相似。他们将服务器版本的代码视为“代码” - 它是主副本,并且由服务器“拥有”。然后你可以获得一个copy您的 PC 上的代码(通过添加工作区映射,您可以告诉它将此副本放置在何处)。您可以对代码副本进行更改,然后将其签入以将其应用回服务器上代码的主版本。

因此,如果您更改工作区映射(例如,将代码副本的位置从文件夹 A 更改为文件夹 B),您将告诉源代码控制系统“请拿走位置 A 中的代码副本,并将其放入B”。这就是为什么它删除了所有“你的”代码。它不是“您的”代码,而是服务器代码的副本 - 您要求它将其放在您 PC 上的其他位置......所以它做到了。

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

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

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

如果这些更改不在您的签入历史记录中,那么恐怕您已经丢失了它们。

您可能已经了解了这一点,但学习正确使用源代码管理等工具非常重要 - 它们是有用且强大的工具,但如果您不了解它们的工作原理,它们可能会很危险。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

TFS 在更改映射时删除了我的文件 的相关文章

  • 自定义 SSH 端口上的 Git

    我的 VPS 提供商建议我将 SSH 端口保留为他们默认分配的自定义端口号 不是 22 问题是 虽然我知道我可以在创建远程配置时提供端口号 但在进行 Git 克隆时似乎无法提供相同的操作 我在用gitolite https wiki arc
  • 如何将 PhoneGap 与 Visual Studio 结合使用

    我在 Windows 8 VS 2012 上开始使用 PhoneGap 时遇到问题 即 我不知道如何安装模板 我打开从PhoneGap下载的模板项目 但它们与VS2012兼容 我不知道从哪里开始创建我的第一个简单的 CRUD 应用程序 我想
  • 将构建日期放入“关于”框中

    我有一个带有 关于 框的 C WinForms 应用程序 我使用以下方法将版本号放入 关于 框中 FileVersionInfo GetVersionInfo Assembly GetExecutingAssembly Location F
  • 如何让 mod_wsgi 在 Mac 上运行?

    几个小时以来 我一直在尝试在 Mac 上安装最新版本的 mod wsgi 3 3 我使用的是 Snow Leopard 并且有系统附带的 Apache Apache 2 2 15 和 Python 2 6 1 r261 67515 版本 我
  • 使用 Maven 外部化 SCM 凭证

    有没有一种方法可以外部化我的 SCM 凭据 以便它们不会存储在项目的 POM 中 问题是 如果它们包含在项目的 POM 中 那么在部署项目时它们将对所有人可见 对于某些 SCM 提供商 您可以在
  • 如何在 Perforce 树中查找未跟踪的文件? (svn状态的模拟)

    有人有脚本或别名来查找 Perforce 树中未跟踪 实际上 未添加 的文件吗 编辑 我更新了对此已接受的答案 因为看起来 P4V 在 2009 年 1 月的版本中添加了对此的支持 EDIT 请用p4 status现在 不再需要跳圈了 参见
  • Visual Studio 2012 不断显示升级报告

    我有一个从 VS 2010 和 SharePoint 2010 迁移的 SharePoint 2013 解决方案 每次在 VS 2012 中加载时都会给我一份升级报告 同时我还没有用 VS 2010 打开它 此外 所有源代码文件都受到写保护
  • EntityHydrate 任务失败

    我最近安装了 Visual Studio 11 Beta 和 Visual Studio 2010 之后 我无法在 Visual Studio 2010 中构建依赖于 PostSharp 的项目 因此我卸载了 Visual Studio 1
  • 在 Subversion 中,如何取消劫持文件?

    目前 我的团队有一组不应该受到版本控制的文件 但它们确实受到了版本控制 我想从我们的 subversion 存储库中删除它们 并允许每个人保留他们的本地版本 实现这一目标的最佳方法是什么 删除文件会将它们从存储库以及每个人的本地文件系统中删
  • 本地提交推送到中央服务器

    在工作中 我们使用 perforce 并被鼓励定期对其进行承诺 我对此很满意 然而 我想运行像 Mercurial 这样的东西 这样我就可以在本地提交正在进行的工作并且不一定编译 运行的东西 然后从中定期提交到中央 perforce 服务器
  • 在 TFS 下的 CI 队列上构建时包未恢复(VS Online VS2015)

    我问过一个关于构建错误的问题 https stackoverflow com questions 34808954 build errors of missing packages in visual studio online并继续由我绝
  • 如何使用 Groovy 获取自上次成功构建以来 Jenkins 的提交信息?

    如何编写自定义 groovy 脚本以轻松操作自上次成功构建以来所有提交的数据 在 gradle maven 步骤之后添加新的构建步骤 gt 执行系统 groovy 脚本 适配代码 import com tikal jenkins plugi
  • 多个“设置启动项目”配置

    我有一个大的解决方案 出于调试目的 我必须使用 Visual Studio 2012 的 设置启动项目 功能来启动许多项目 但是 我经常需要更改需要启动的项目 有时是项目 A B C 有时项目 B C D 等 有人知道这样的扩展吗 看看Sw
  • 我们是否错误地使用了 TFS 2010? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我们的团队是 TFS2010 的新手 从历史上看 我们一直使用我们自己的业务需求矩阵 可追溯性矩阵 Excel 电子表格 它具有典型的列 例如
  • 命名空间中不存在类型或命名空间名称 - 但命名空间确实存在

    我已经工作了很长时间没有任何问题的项目突然开始抛出错误 例如 The type or namespace name xxx does not exist in the namespace yyy are you missing an ass
  • 使用搜索模式 '...\**\TEST-*.xml 找不到测试结果文件

    我正在 TFS Nunit 加带有适配器的 Visual Studio 中运行测试 并且我已设置构建定义如下 构建成功但没有生成测试结果文件 TFS 是否写入此 Xml 文件 日志 2017 02 08T08 08 40 8151428Z
  • 有没有办法将 Hudson / Jenkins 配置文件保留在源代码管理中?

    我是 Hudson Jenkins 的新手 想知道是否有办法将 Hudson 的配置文件签入源代码管理 理想情况下 我希望能够单击 UI 中显示 保存配置 的某个按钮 并将 Hudson 配置文件签入源代码管理 最有帮助的答案 有一个插件叫
  • 如何从 git 存储库中删除作者?

    如果我创建一个 Git 存储库并公开发布它 例如在 GitHub 等上 并且我收到存储库贡献者的请求 无论出于何种原因删除或隐藏他们的名字 有没有一种方法可以轻松做到这一点 基本上 我有这样的请求 可能想将他们的姓名和电子邮件地址替换为 匿
  • DateTime.Ticks 没有 100 ns 的分辨率? [复制]

    这个问题在这里已经有答案了 可能的重复 C DateTime Now 精度 https stackoverflow com questions 2143140 c sharp datetime now precision SO 有一些关于
  • 如何在 Team Foundation 上强制发表有意义的签入评论?

    我有一个开发团队有一个坏习惯 他们写道poor签入评论 当我们必须在团队基础上查看文件的历史记录时 这使得它成为一场噩梦 我已经启用了变更集评论政策 这样他们甚至可以在签到时留下评论 否则他们不会 我们就团队的工作质量进行了一些讨论 他们很

随机推荐

  • 表单验证如何排除输入字段?

    我正在关注 bootstrap 4 表单验证https getbootstrap com docs 4 0 components forms validation https getbootstrap com docs 4 0 compon
  • 如何在 Context.MODE_PRIVATE 中创建嵌套文件夹和文件?

    我有一个要求 需要使用嵌套结构编写文件和文件夹Context MODE PRIVATE 我发现我们可以使用创建文件openFileOutput FILENAME Context MODE PRIVATE 并能够使用此方法创建文件 但后来我发
  • 如何从我的应用程序中启动 Mail.app 中的新消息窗口

    我可以使用命令启动 Mail app NSWorkspace共享工作空间 launchApplication Mail app 但我想在 Mail app 中启动新消息窗口 而不是整个 Mail app 我怎样才能这样做呢 我得到了答案 N
  • 从文件返回细节,python

    我有这段代码 我正在尝试计算以下内容的数量 py 脚本中的代码行 for loops 对于 while loops 同时 if 语句 如果 函数定义 def 乘号 除号 加号 减号 在数学符号上 代码可以工作 但是当代码寻找 if 语句时
  • 如何使用cmd/批处理文件删除目录中名为x的所有文件夹

    我有一个名为 x 的文件夹 其中包含许多子文件夹和文件 我想删除 x 中存在的名为 y 的文件夹及其所有子文件夹 必须删除的所述文件夹可能包含也可能不包含任何文件 我相信我可以使用 cmd 或某种批处理文件来完成此操作 但我是一个命令行新人
  • 在位图样式设计器中更改字体

    Delphi XE7 提供了 位图样式设计器 工具 工具 gt 位图样式设计器 可用于为您的 Metro 主题应用程序编辑和创建样式 更改按钮 复选框和标签的图形和颜色很有效 而且看起来很漂亮 但如何更改字体设置呢 更准确地说 我该怎么做才
  • 比亚恩会犯错误吗? (一边解释模板),还是我还是不明白?

    伙计们 我正在做 C 编程语言第三版 的练习 第 340 页有一个函数示例 template
  • 确定文件是否为空(SSIS)

    我正在尝试在 SSIS 2005 中开发一个包 我的过程的一部分是检查网络上的文件是否为空 如果不为空 则需要传递成功状态 否则 需要传递不成功状态 我想我需要一个脚本任务 但不知道如何去做 任何帮助表示赞赏 Create a connec
  • 保留 Emacs 中的窗口布局

    我已经以某种方式设置了我的窗口 如何保存此设置以供以后调用 我有时还是用C x r w
  • 验证本地 Laravel Homestead 服务器上的自签名证书

    我按照以下详细信息创建了 SSL 证书 因此我可以使用 https 通过 Laravel 的 Homestead 运行本地测试站点 在 homestead 虚拟机上添加 https 证书 https stackoverflow com qu
  • UITableViewController 背景图片

    如何设置图像UITableViewController 我使用了很多东西 但它不能帮助我将图像设置为背景 UIImageView bgView UIImageView alloc initWithImage UIImage imageNam
  • 在 r 绘图文本中指定小数位?

    我尝试格式化在基本图形系统中创建的回归曲线的标签 基本上 该标签从变量中提取斜率 截距和 r 方值 示例如下 plot rnorm 10 type n xlim c 0 100 ylim c 0 100 text x 0 y 100 adj
  • VBA许多按钮指向同一个_Click sub

    我的表单上有一堆文本框按钮对 单击按钮时 我想将文本框的值插入数据库 名称 文本框 和 按钮 遵循命名标准 例如 Value1Tb Value1Cmd 和 Value2Tb Value2Cmd 我的问题是 因为我想对每个按钮执行相同的操作
  • 哪个 Eclipse 可以与 ADT 完美配合?

    Eclipse 有很多版本 例如 靛蓝 朱诺 开普勒 月球 火星 其中哪一个最适合 ADT Stack Overflow 上有很多这样的问题 但都是 4 5 年前的问题 我正在寻找更新的东西 我提出你的问题是因为我自己也想知道这个问题 因为
  • 当一个子类没有额外属性时,教义表类继承

    我的映射有问题 我无法让它工作 我有一个像这样的抽象基类 Entity Table name actions InheritanceType JOINED DiscriminatorColumn name type type string
  • 依赖注入和开发效率

    Abstract 在过去的几个月里 我一直在编写一个轻量级 基于 C 的游戏引擎 具有 API 抽象和实体 组件 脚本系统 它的整体理念是通过提供类似于 Unity 引擎的架构来简化 XNA SlimDX 等游戏开发过程 设计挑战 正如大多
  • 获取 python for 循环中的第一个和最后一个项目

    是否有一种优雅且Pythonic的方法来捕获在生成器上迭代的for循环中的第一个和最后一个项目 from calendar import Calendar cal Calendar 6 month dates cal itermonthda
  • 带 apexcharts 的半圆环图

    I am trying to make half donut chart with multiple data as following picture using apexcharts 到目前为止我只发现Semi Circle Gauge
  • Raphael JS Pie:将 ID 添加到路径切片

    我在 Raphael Google Groups 上看到过这个问题 但是经过几个小时的搜索 以及这里和 Google 我似乎找不到解决方案 我只是希望能够使用 jQuery 定位我的饼图 svg 路径 切片 但我无法弄清楚如何将自定义 id
  • TFS 在更改映射时删除了我的文件

    I had这是一个相当大的解决方案 这里有很多代码 由于 TFS 存在一些问题 我想创建一个新的 干净 存储库 我删除了到旧存储库的映射 并尝试创建新映射 这导致了一个错误 即已经存在到我的解决方案的映射 我去了Source Control