我将 Team Foundation Server 2010 与 Visual Studio 2010 一起使用。
每当我在 Visual Studio 之外修改文件时,TFS 似乎都没有检测到对文件所做的更改,因此没有为我提供在文件修改后签入文件的选项。
如何解决?
TFS 对此有一个“协调”命令:
打开源代码管理资源管理器 右键单击有更改的文件夹并选择比较 选择要协调的文件(按 CTRL+A 选择所有文件) 单击协调按钮 在协调文件夹差异对话框中设置选项。确保将没有未决更改的文件设置为签出 单击确定 如果您有本地更改,将显示签出对话框。设置首选的锁类型 点击签出
https://i.stack.imgur.com/BzvnH.png
另请参阅:Reconcile differences between folders
如果您在 Visual Studio 之外工作时与服务器建立了网络连接,则最好在编辑之前继续检查文件,或者使用 tf 命令行客户端,或者使用 Windows Explorer shell 集成在 TFS Power Tools 版本中可用。 (此外,越来越多的其他工具具有 TFS 集成,可以自动执行此操作,但如果您只是使用记事本,这仍然需要手动执行。)
当然,有很多时候您正在工作并且没有可用的网络连接来检查文件。
如果您知道您修改了哪些文件,您可以从 Visual Studio 中将它们签出,然后您就可以将它们重新签入。
如果您不知道自己编辑了哪些文件,您可以通过运行 tfpt online
命令(也是 Power Tools 版本的一部分)来检测更改。这将在本地找到已修改的文件并从服务器中检出这些文件。
这对我有用,使用 TFS 电动工具:
tfpt online /adds /deletes /diff /noprompt /recursive directory-name
(其中 directory-name 是要更新的目录的路径,否则它将检测整个 TFS 存储库中的更改)
如果您想知道它在不实际进行任何更改的情况下会做什么,您可以通过添加 /preview
开关强制它进行试运行。
/exclude:fld_name/*,filename
开关可用于排除不需要的文件..这让我大吃一惊
tfpt online /deletes /noprompt /recursive directory-name
并有数千个文件要“更改”,所以必须撤消。但我从来没有碰过这些,只是删除了文件夹。
*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 始终标记为已修改的文件进行相同的清理。
尝试这个。这是某种解决方法,但它有效:
在 Visual Studio 之外进行更改转到 Visual Studio 并打开源代码管理资源管理器右键单击文件夹>“签出以进行编辑”>“签出”右键单击同一文件夹>“撤消挂起的更改...”>“撤消改变”>“对所有人都说不”
而已。现在可以看到更改。
还有另一种解决方案可以让 TFS 找出在 Visual Studio 之外已更改的文件:
离线打开解决方案 在解决方案资源管理器中选择解决方案文件,然后按“联机”按钮 ()
在此之后,TFS 将自动扫描解决方案的更改。
第一步可以通过多种不同的方式实现。这里有一些:
使用 GoOffline 扩展 - 非常简单有效。
如果在打开解决方案时要求您提供 TFS 凭据(无自动域身份验证),请不要输入凭据。该解决方案将离线打开,您将在按下“联机”按钮后登录
(极端解决方案)断开你的网线;打开解决方案;连接网络电缆。
Visual Sourcesafe 也是这样工作的,我让 VSS 或 TFS 注意到更改的方法是在 Visual Studio 中检查文件一次。
打开源代码管理并转到您的 TFS 文件夹。右键单击该文件夹并选择“比较”。
请注意,您编辑的文件显示为红色。
我发现这比 tfpt online
更好,它还可以获得非只读且未编辑的文件。
过去我遇到过这个问题,当我的 Internet 出现故障并且我脱机工作时,我的大部分更改都没有出现在 Team Explorer 中。
https://i.stack.imgur.com/5tqMF.png
*.cs;!obj\;!bin\;!packages\;
在此示例中,它将仅包含在搜索中的 C# 文件并排除在以下文件夹中:bin、obj 和 packages。
请注意 Pending Change 列包含文件是否标记为编辑、添加等...或什么都没有的信息...
要标记为编辑(当本地项目具有匹配的服务器项目时),请选择文件并选择签出以进行编辑...
要标记为添加(当本地项没有任何服务器项时),请选择文件并选择添加文件
最后,我不确定为什么项目没有在此处列出(在我删除 *.cs 过滤器后,仍然没有显示),因此重新构建解决方案以确保项目也更新
在解决方案中,单击显示联机的连接按钮(如果显示)。
我发现在 Visual Studio 2015 中,随着项目的打开,Visual Studio 自己发现文件已在外部进行了修改,并自动将它们签出,而我无需做任何事情。以正常方式签入项目保存了外部修改。
就我而言,以下方法有效(至少我尝试过一次):
转到 Pending Changes 面板 在 Included 或 Excluded changes 下选择 View Options。在 Show All 和 Show Solution Changes 之间切换 根据需要切换回来
https://i.stack.imgur.com/pEnOJ.png
更改查看选项似乎会强制刷新已修改的文件。
不定期副业成功案例分享