【问题标题】:VS 2017 deletes files/folder on meVS 2017 删除我身上的文件/文件夹
【发布时间】:2018-04-27 14:26:15
【问题描述】:

VS 2017 (v15.6.6 Enterprise) 会持续删除我和我的团队成员身上的文件/文件夹。由于这些错误,我们丢失了很多代码。

一种情况是有人移动了文件/文件夹,而另一个团队成员在获取最新版本之前对其进行了修改。在这种情况下,冲突窗口会按原样出现,但它会删除本地文件(不可恢复),我们最终会获得服务器版本,因为它不允许我们合并文件,因为它在本地不存在(是的,因为它删除了文件)。

另一个问题是挂锁图标会出现在某些文件中,而不会出现在其他文件中(挂锁文件在团队成员之间会发生变化。例如,文件 A 可能在我的本地被挂锁,而在其他人中可能没有被挂锁,反之亦然)。

作为解决方案,我们决定在现在签入之前搁置所有更改。或者,如果这些问题继续存在,我们将降级到 VS 2015。我们有哪些选择?我们已经多次映射/取消映射项目。

【问题讨论】:

    标签: visual-studio tfs visual-studio-2017


    【解决方案1】:

    首先,如果本地文件从您的文件系统中消失,它们就消失了。您可以查看是否可以使用文件恢复实用程序来取消删除它们,但除此之外,就无法恢复它们。

    TFS 中的移动选项类似于“删除旧文件 + 添加新文件”。因此,当您签入原始文件时,实际上这些文件之前已被删除。 VS 将自动将您的本地工作区与 TFS 服务器同步。这就是您的本地文件被删除的原因。

    最好不要频繁移动 TFS 服务器文件夹中的文件,这也会弄乱历史信息。如果您坚持这一点,您可以使用解决方法在签入前搁置我们所有的更改。

    对于未显示的挂锁图标,所有错误是项目文件没有正确绑定到 TFS。 .csproj 文件中缺少一个部分,应如下所示:

    <SccProjectName>SAK</SccProjectName>
    <SccLocalPath>SAK</SccLocalPath>
    <SccAuxPath>SAK</SccAuxPath>
    <SccProvider>SAK</SccProvider>
    

    你需要去 File > Source Control > Advanced... > Change Source Control... 选择项目,选择 unbind 并重新绑定它。更多细节请看这个类似的问题:No padlock icon for some projects in a source controlled solution

    此类问题不应与您的本地 Visual Studio 版本相关。

    【讨论】:

    • 实际上,我们使用源代码管理资源管理器中的“移动”选项来不丢失 tfs 历史记录。对于挂锁图标,该代码部分存在于所有项目中,我们已经多次解除绑定/重新绑定......
    • 并且这些挂锁图标会因用户而异(文件 A 可能在我的本地被挂锁,而在另一个人中可能没有被挂锁,反之亦然),这意味着它与 tfs 端无关但VS相关..
    • @sotn 如果是这样,这种问题通常与缓存有关。建议您尝试清除 VS 和 TFS 缓存。如何请参考这个blog和这个one
    • @sotn 另一种方法是在 TFS 源代码控制中删除/取消绑定这些特定文件/文件夹,然后重新绑定它们。如何请参考:stackoverflow.com/questions/358951/… 还删除了旧的工作区(先备份本地更改),创建一个新的工作区并从 TFS 服务器获取最新的。哪个应该解决问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-03-10
    • 1970-01-01
    • 1970-01-01
    • 2015-01-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多