【问题标题】:Why won't it let me delete files from TFS?为什么它不允许我从 TFS 中删除文件?
【发布时间】:2014-03-01 03:07:13
【问题描述】:

我有一些文件会自动生成并放置在使用 TFS 进行版本控制的目录中。我运行它并向服务器添加了许多文件,例如abc.sql

然后我重新运行我的脚本,并且发生了一些变化,以至于 abc 已过时。我的脚本从本地 Windows 文件夹中删除了 abc.sql

当我在 TFS 中运行 Compare 时,它会拾取丢失的文件,但是当我尝试选择 Delete 从服务器中删除文件时,我收到此错误:

The item $/.../abc.sql could not be found in your workspace, 
or you do not have permission to access it.

知道它不在我的工作区,这是故意的。那么如何在本地删除文件,同时告诉 TFS 从服务器中删除呢?

【问题讨论】:

    标签: visual-studio-2012 tfs


    【解决方案1】:

    不只是删除文件系统中的文件,您还应该在工作区中将其标记为已删除,然后检查删除。

    如果您已经将文件添加到源代码管理,您还可以将它们标记为已删除,例如通过运行tf delete。此命令还会从磁盘中删除文件。从 .NET 应用程序中,您可以使用 System.Diagnostics.Process 启动它。

    【讨论】:

    • 我想我可以这样做,但是当我认为 TFS 应该做显而易见的事情并检测文件是否丢失并让您使用源代码资源管理器将其删除时,这似乎还有很多工作要做。
    • @JoshuaFrank:从 TFS 源代码管理中删除文件与从文件系统中删除文件不同。源代码控制是允许您恢复已在本地删除的文件的主存储库。因此,您需要明确告诉 TFS 您还想从源代码管理中删除该文件,而不仅仅是从文件系统中删除。是否更多的工作取决于您的具体情况;根据我的经验,实施起来并不难。创建文件时是否已将创建的文件添加到源代码管理?如果没有,tf add 可以为您执行此操作。 tf checkin 进行签到。
    【解决方案2】:

    您不需要在本地删除文件,只需让您的脚本从 TFS 中删除文件即可。提交到源代码管理后,该文件将在本地删除。

    http://msdn.microsoft.com/en-us/library/k45zb450(v=vs.100).aspx

    tf delete [/lock:(none|checkin|checkout)] [/recursive] [/login:username,[password]] itemspec

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-12-05
      • 2013-12-21
      • 1970-01-01
      • 1970-01-01
      • 2017-09-02
      • 2012-09-11
      • 2011-07-04
      • 2012-03-01
      相关资源
      最近更新 更多