我将 Team Foundation Server 2010 与 Visual Studio 2010 一起使用。
每当我在 Visual Studio 之外修改文件时,TFS 似乎都没有检测到对文件所做的更改,因此没有为我提供在文件修改后签入文件的选项。
如何解决?
我将 Team Foundation Server 2010 与 Visual Studio 2010 一起使用。
每当我在 Visual Studio 之外修改文件时,TFS 似乎都没有检测到对文件所做的更改,因此没有为我提供在文件修改后签入文件的选项。
如何解决?
TFS 对此有一个“协调”命令:
另请参阅:协调文件夹之间的差异
如果您在 Visual Studio 之外工作时与服务器建立了网络连接,则最好在编辑之前继续检查文件,或者使用 tf 命令行客户端,或者使用 Windows Explorer shell 集成在TFS 电动工具版本中可用。(此外,越来越多的其他工具具有 TFS 集成,可以自动执行此操作,但如果您只是使用记事本,这仍然需要手动执行。)
当然,有很多时候您正在工作并且没有可用的网络连接来检查文件。
如果您知道您修改了哪些文件,您可以从 Visual Studio 中将它们签出,然后您就可以将它们重新签入。
如果您不知道您编辑了哪些文件,您可以通过运行tfpt online
命令(也是 Power Tools 版本的一部分)来检测更改。这将在本地找到已修改的文件并从服务器中检出这些文件。
这对我有用,使用 TFS 电动工具:
tfpt online /adds /deletes /diff /noprompt /recursive directory-name
(其中 directory-name 是要更新的目录的路径,否则它将检测整个 TFS 存储库中的更改)
如果您想知道它在不实际进行任何更改的情况下会做什么,您可以通过添加/preview
开关来强制它进行试运行。
*1- make changes outside of Visual Studio
2- go to Visual Studio and open Source Control Explorer
3- right click on the folder > "Check Out for Edit" > "Check Out"
4- right click on the same folder > "Undo Pending Changes..." > "Undo changes" > "No to All"*
我在一个分支上测试了这个解决方法,它对我帮助很大。但是只有新文件和新文件夹必须手动完成。
我建议在操作之前创建一个分支。它可以隔离您的操作时间。
注意:此技术还会对 TFS 始终标记为已修改的文件进行相同的清理。
试试这个。这是某种解决方法,但它有效:
就是这样。现在可以看到更改。
还有另一种解决方案可以让 TFS 找出在 Visual Studio 之外已更改的文件:
在此之后,TFS 将自动扫描解决方案的更改。
第一步可以通过多种不同的方式实现。这里有一些:
Visual Sourcesafe 也是这样工作的,我让 VSS 或 TFS 注意到更改的方法是在 Visual Studio 中检查文件一次。
打开源代码管理并转到您的 TFS 文件夹。右键单击该文件夹并选择“比较”。
请注意,您编辑的文件显示为红色。
我发现这比tfpt online
它还可以让您获得非只读且未编辑的文件要好。
过去我遇到过这个问题,当我的 Internet 出现故障并且我脱机工作时,我的大部分更改都没有出现在 Team Explorer 中。
执行以下步骤:首先,在解决方案资源管理器中,选择要重新协调的文件夹(对我来说,这是我的整个解决方案文件夹),然后选择比较...
单击修改过滤器,然后在过滤器文本中-框,您可以键入:
*.cs;!obj\;!bin\;!packages\;
在此示例中,它将仅包含在搜索中的 C# 文件并排除在以下文件夹中:bin、obj 和 packages。
请注意Pending Change列包含文件是否标记为编辑、添加等...或什么都没有的信息...
最后,我不确定为什么项目没有在此处列出(在我删除 *.cs 过滤器后,仍然没有显示),因此重新构建解决方案以确保项目也更新
+ 在解决方案中,单击显示Go Online的连接按钮(如果显示)。
我发现在 Visual Studio 2015 中,打开项目后,Visual Studio 自己发现文件已被外部修改,并自动将它们检出,而我无需做任何事情。以正常方式签入项目保存了外部修改。