看起来这应该是一件非常简单的事情,但我找不到如何做...
我使用编写的脚本对分布在代码库中的多个文件进行了更改。问题是TFS在其无限的智慧中认为文件没有更改。除了手动查找每个文件并点击“编辑检出”之外,还有没有办法告诉TFS重新扫描所有内容并检测更改?
看起来这应该是一件非常简单的事情,但我找不到如何做...
我使用编写的脚本对分布在代码库中的多个文件进行了更改。问题是TFS在其无限的智慧中认为文件没有更改。除了手动查找每个文件并点击“编辑检出”之外,还有没有办法告诉TFS重新扫描所有内容并检测更改?
文件夹比较(文件->源代码控制->比较...)可以解决问题。选择要从哪个文件夹开始进行比较,然后选择与最新版本进行比较。结果将显示已更改的文件以及它们是否已检出。
您需要使用一个本地工作区(Local Workspace)
。以下是如何管理工作区的方法:
添加或编辑工作区时, 点击高级(Advanced) >>
,然后将位置(Location):
设置为本地(Local)
。
现在,当您的脚本或其他内容在 Visual Studio 外更改文件时,您的工作区会自动检测到变更(changes)
。
它还可以检测到添加(adds)
或删除(deletes)
,但您必须手动将其包含在待提交更改(Pending Changes)
中,在排除的更改(Excluded Changes)
下方有链接可用。
但要小心。当检测到添加(adds)
或删除(deletes)
并将其添加到待提交更改(Pending Changes)
中时,文件不会自动包含在您的项目中。所以,您可以将它们检入到TFS
中,但它们不会列在解决方案资源管理器(Solution Explorer)
下。
Matt Burke为此问题提供了一个解决方案:
mattburkdev.com:"在Visual Studio中自动包含文件夹中的所有文件"
要编辑项目文件,右键单击您的项目,选择取消加载项目(Unload Project)
,然后再次右键单击该项目并选择编辑(Edit)
。编辑项目文件后保存并关闭它。然后右键单击并选择加载项目(Load Project)
。
但是需要注意的是,该项目仅在加载该项目时才搜索包括这些文件夹中的新文件以进行包含,而不是在您打开该项目时进行。因此,如果有一些文件在 Visual Studio 之外被添加,您只需重新加载该项目。
但是如果由于某种原因必须坚持使用服务器工作区,则我还有另一个窍门:
首先:检出所有可能有待更改的文件(最好检出许多文件)。 然后转到“团队资源管理器” ->“待处理更改”,选择刚刚检出的所有文件。 然后选择“撤消更改”。完成后会收到“确认撤消检出”的消息。 此消息仅会出现在实际发生更改的文件上! 对于每个文件选择“否”或“全部否”。
最后:在待处理更改下,所有文件都将从列表中删除,除了具有待处理更改的文件。
希望这能帮到某人,您也不必像我一样久寻解决方案 ^^
如果以上方法都无效,您也可以尝试重新绑定项目,具体操作是:打开“文件”菜单 -> “源控制” -> “高级” -> “更改源控制”。
我曾经遇到过这个问题,当我将项目从一台电脑移动到另一台电脑时。
解决方法是删除TFS在解决方案文件夹中创建的临时文件。
删除.vs
和隐藏的$tf
文件夹。
如果没有成功,在本地计算机上将您的解决方案文件夹复制到另一个文件夹中,删除解决方案中的所有文件,从TFS服务器获取最新版本,然后从复制的文件夹中只获取必要和编辑过的文件并将它们放回解决方案文件夹中(这将覆盖一些文件)。
最后别忘了检查项目映射,如果一切正常,请右键单击解决方案并选择“添加到源代码控制”选项。
Dtsx文件放在TFS文件夹中未被识别。
选择“上传现有文件”。然后,您可以拖放您的.dtsx文件到窗口中,然后单击确定。
最后,您需要执行“Fetch”以将文件添加到其中。然后您需要执行“Pull”。 最后,您可以将更改提交到远程分支。