TFS 2010 - 在提交更改前删除Visual Studio解决方案中的文件夹

19

我们正在使用 TFS 2010,并在 Visual Studio 中删除解决方案内的文件夹时遇到问题。

在最新版本的检入代码中,该目录中有文件。

其中一位开发人员决定将该目录中的文件移动到解决方案中的另一个位置。然后尝试删除旧文件夹,但收到以下错误:

This operation cannot be completed. 
You are attempting to remove or delete a source-controlled item where the item is either exclusively locked elsewhere or otherwise unable to be deleted from source control.

有人知道试图这样做的问题在哪里吗?是否有方法可以避免这个问题?


您可能还想查看这个相关问题 - IsmailS
2个回答

28

如果一个文件夹的子文件或子文件夹有待处理的更改(包括正在移出该文件夹的任何子文件或子文件夹 - 直到变更集被检入之前,它们仍然是子文件或子文件夹),则无法删除该文件夹。

您需要分两步完成此操作:首先将子文件或子文件夹移出文件夹并检入这些更改,然后将文件夹作为单独的变更集进行删除。


7
详细说明:永远不要在 TFS 中混合使用编辑、重命名和删除操作——即使对于一个开发人员来说也可能会引起问题,如果您的更改需要合并到另一个分支或另一个开发人员的工作区,则可能会引起重大问题。TFS 2010 在这方面比 2008 和 2005 更加健壮,但是在重命名/删除操作与编辑操作重叠时仍然是非常糟糕的想法。在进行重命名/删除时,请尽量确保您是唯一更改这些文件的用户,并单独提交每个更改。 - Jason Williams
1
我不确定我会那么说。我经常检查包含大量重构(编辑/添加/删除等)的更改集。您能否进一步讨论您遇到的问题? - Edward Thomson
我必须承认,有时我会在提交代码时混合一些东西,虽然我对此感到有些怀疑(考虑到我与VSS的可怕历史),但到目前为止我还没有遇到问题。我确实有一个文件夹无法删除,但是按照George Witte在这个问题上的建议解决了问题。 - Jason Snelders
面对相同的情况,可以从另一个分支进行合并,其中删除和重命名可能需要分两步进行。有没有一种简单的方法来排除删除,但继续进行移动/重命名操作?排除“将要删除”的父文件夹也会排除需要移动的子文件夹。在执行分支合并时,最好不必手动进行此移动。 - Louis

9
如果您想要删除的文件夹存在于本地计算机上,只需在Visual Studio IDE中向该文件夹添加一个新文件(文件类型无关紧要)。然后您应该能够从VS中删除该文件夹。
如果该文件夹已从本地计算机中删除,请使用相同的名称创建一个新文件夹,然后按照上述步骤操作。

完美!谢谢George。我有一个文件夹无法在我的任何一台开发机器上本地删除(也不在源代码控制中)。我添加了一个文件,检查后删除了文件夹,一切都很好。 - Jason Snelders
谢谢 - 这个方法对我也有效 - 我需要删除一个文件夹,但不想check in。是的,问题出现是因为我将带有待处理 check in 的新文件移出了该文件夹,导致它不为空。为了解决问题,我添加了一个文件;"撤销"添加文件的待处理更改;删除了文件夹和文件。 - Joseph Gabriel
太棒了。无法删除那个文件夹真的很烦人。发现得好。Stack Overflow从未让我失望! :) - Mike U

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接