【发布时间】:2013-04-26 17:45:21
【问题描述】:
看起来这应该是很简单的事情,但我找不到如何做到这一点......
我使用自己编写的脚本对存储库中分布的多个文件进行了更改。问题是 TFS 以其无限的智慧不认为文件发生了变化。除了手动查找每个文件并单击“签出以进行编辑”之外,还有什么方法可以告诉 TFS 重新扫描所有内容并检测更改?
【问题讨论】:
-
不错的答案,但切换到本地与服务器工作区会更简单。
标签: tfs
看起来这应该是很简单的事情,但我找不到如何做到这一点......
我使用自己编写的脚本对存储库中分布的多个文件进行了更改。问题是 TFS 以其无限的智慧不认为文件发生了变化。除了手动查找每个文件并单击“签出以进行编辑”之外,还有什么方法可以告诉 TFS 重新扫描所有内容并检测更改?
【问题讨论】:
标签: tfs
文件夹比较(文件->源代码管理->比较...)应该可以解决问题。选择开始比较的顶层文件夹,然后选择与最新版本进行比较。结果应显示已更改的文件,以及它们是否已签出。
【讨论】:
TFS 对此有一个“协调”命令。完整答案请参见https://stackoverflow.com/a/22860674/932282。
【讨论】:
您需要使用local Workspace。以下是管理工作区的方法:
visualstudio.com: "Create and work with workspaces".
添加或编辑工作区时,单击 Advanced >> 。然后将Location: 设置为Local。
现在,当您的脚本或其他任何内容更改 Visual Studio 之外的文件时,您的工作区会自动检测到 changes。
它还会检测到adds 或deletes,但您必须使用Excluded Changes 下的链接手动将它们包含到您的Pending Changes 中
但要小心。当检测到adds 或deletes 并将它们添加到Pending Changes 时,这些文件不会自动包含到您的项目中。因此,您可以将它们签入TFS,但它们并未列在Solution Explorer 下。
Matt Burke 解决了这个问题:
mattburkdev.com: "Automatically Include All Files in Folder in Visual Studio"
要编辑项目文件,请右键单击您的项目,选择Unload Project,然后再次右键单击它并选择Edit。编辑项目文件后保存并关闭它。然后右键单击并选择Load Project。
但是你也需要小心,因为项目只在这些文件夹中搜索要包含的新文件,当你加载项目而不是当你打开项目时。因此,当一些文件被添加到 Visual Studio 之外时,您只需重新加载项目即可。
但是,如果您出于某种原因必须坚持使用服务器工作区,我还有另一个窍门:
第一: 检查所有可能有未决更改的文件(最好检查许多文件)。然后转到 Team Explorer -> Pending Changes 并选择您刚刚签出的所有文件。然后选择“撤消更改”。在此之后,您会收到一条消息“确认撤消结帐”。此消息仅针对实际上已更改的文件弹出!对每个文件按“否”或对所有文件按“否”。
最后:在未决更改下,所有文件都将从列表中删除,但有未决更改的文件除外。
我希望我可以帮助某人,只要我必须,您就不必搜索此解决方案^^
【讨论】:
如果您在离线时发生任何更改,您可以转到文件 > 源代码管理 > 上线,所有文件都会被检查是否有修改。
【讨论】:
如果以上方法都不起作用,您还可以尝试通过转到文件 -> 源代码管理 -> 高级 -> 更改源代码控制来重新绑定您的项目。
【讨论】:
当我将项目从一台电脑移动到另一台电脑时,我遇到了这个问题。
解决方案是删除 TFS 在解决方案文件夹中创建的临时文件。
删除.vs 和隐藏的$tf 文件夹。
如果运气不好,在您的本地 PC 上将您的解决方案文件夹复制到另一个,删除解决方案中的所有文件,从 TFS 服务器获取最新版本,然后从复制的文件夹中获取必要和已编辑的文件和将它们放回解决方案文件夹(这将覆盖一些文件)。
毕竟不要忘记检查项目映射,如果一切正常,请尝试右键单击解决方案和“添加到源代码管理”选项。
【讨论】:
无法识别放入 TFS 文件夹的 Dtsx 文件。
选择“上传现有文件”。然后,您可以将 .dtsx 文件拖放到窗口中,然后单击“确定”。
最后,您必须执行“获取”才能将文件添加到那里。然后你需要做一个“拉”。最后,您可以将更改提交到远程分支。
【讨论】: