120

我将 Team Foundation Server 2010 与 Visual Studio 2010 一起使用。

每当我在 Visual Studio 之外修改文件时,TFS 似乎都没有检测到对文件所做的更改,因此没有为我提供在文件修改后签入文件的选项。

如何解决?

4

11 回答 11

169

TFS 对此有一个“协调”命令:

  1. 打开源代码管理资源管理器
  2. 右键单击包含更改的文件夹,然后选择比较
  3. 选择要协调的文件(按CTRL+A选择所有文件)
  4. 单击协调按钮
  5. 在“协调文件夹差异”对话框中设置选项。确保没有挂起更改的文件设置为签出
  6. 点击确定
  7. 如果您有本地更改,将显示签出对话框。设置首选的锁类型
  8. 点击签出

协调文件夹差异

另请参阅:协调文件夹之间的差异

于 2014-04-04T10:48:35.573 回答
47

如果您在 Visual Studio 之外工作时与服务器建立了网络连接,则最好在编辑之前继续检查文件,或者使用 tf 命令行客户端,或者使用 Windows Explorer shell 集成在TFS 电动工具版本中可用。(此外,越来越多的其他工具具有 TFS 集成,可以自动执行此操作,但如果您只是使用记事本,这仍然需要手动执行。)

当然,有很多时候您正在工作并且没有可用的网络连接来检查文件。

如果您知道您修改了哪些文件,您可以从 Visual Studio 中将它们签出,然后您就可以将它们重新签入。

如果您不知道您编辑了哪些文件,您可以通过运行tfpt online命令(也是 Power Tools 版本的一部分)来检测更改。这将在本地找到已修改的文件并从服务器中检出这些文件。

于 2011-05-05T14:46:26.587 回答
35

这对我有用,使用 TFS 电动工具:

tfpt online /adds /deletes /diff /noprompt /recursive directory-name

(其中 directory-name 是要更新的目录的路径,否则它将检测整个 TFS 存储库中的更改)

如果您想知道它在不实际进行任何更改的情况下会做什么,您可以通过添加/preview开关来强制它进行试运行。

于 2012-09-13T15:05:39.990 回答
16
*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 始终标记为已修改的文件进行相同的清理。

于 2012-01-27T18:24:21.043 回答
7

试试这个。这是某种解决方法,但它有效:

  1. 在 Visual Studio 之外进行更改
  2. 转到 Visual Studio 并打开源代码管理资源管理器
  3. 右键单击文件夹> “签出以进行编辑” > “签出”
  4. 右键单击同一文件夹> “撤消挂起的更改...” > “撤消更改” >“全部拒绝

就是这样。现在可以看到更改。

于 2011-05-05T15:05:55.343 回答
3

还有另一种解决方案可以让 TFS 找出在 Visual Studio 之外已更改的文件:

  1. 离线打开解决方案
  2. 在解决方案资源管理器中选择解决方案文件,然后按“联机”按钮 ( GoOnline 按钮图标)

在此之后,TFS 将自动扫描解决方案的更改。

第一步可以通过多种不同的方式实现。这里有一些:

  • 使用GoOffline扩展 - 非常简单有效。
  • 如果在打开解决方案时要求您提供 TFS 凭据(无自动域身份验证),请不要输入凭据。该解决方案将离线打开,您将在按下“联机”按钮后登录
  • (极端解决方案)断开你的网线;打开解决方案;连接网络电缆。
于 2012-09-08T20:32:32.743 回答
2

Visual Sourcesafe 也是这样工作的,我让 VSS 或 TFS 注意到更改的方法是在 Visual Studio 中检查文件一次。

于 2011-05-05T14:32:06.630 回答
1

打开源代码管理并转到您的 TFS 文件夹。右键单击该文件夹并选择“比较”。

请注意,您编辑的文件显示为红色。

我发现这比tfpt online它还可以让您获得非只读且未编辑的文件要好。

于 2013-07-11T12:40:25.043 回答
1

过去我遇到过这个问题,当我的 Internet 出现故障并且我脱机工作时,我的大部分更改都没有出现在 Team Explorer 中。

执行以下步骤:首先,在解决方案资源管理器中,选择要重新协调的文件夹(对我来说,这是我的整个解决方案文件夹),然后选择比较... 在此处输入图像描述 单击修改过滤器,然后在过滤器文本中-框,您可以键入:

*.cs;!obj\;!bin\;!packages\;

在此示例中,它将仅包含在搜索中的 C# 文件并排除在以下文件夹中:bin、obj 和 packages。

请注意Pending Change列包含文件是否标记为编辑、添加等...或什么都没有的信息...

  • 要标记为编辑(当本地项目具有匹配的服务器项目时),请选择文件并选择签出以进行编辑...
  • 要标记为添加(当本地项没有任何服务器项时),请选择文件并选择添加文件

最后,我不确定为什么项目没有在此处列出(在我删除 *.cs 过滤器后,仍然没有显示),因此重新构建解决方案以确保项目也更新

+ 在解决方案中,单击显示Go Online的连接按钮(如果显示)。

于 2015-07-23T15:03:52.623 回答
0

我发现在 Visual Studio 2015 中,打开项目后,Visual Studio 自己发现文件已被外部修改,并自动将它们检出,而我无需做任何事情。以正常方式签入项目保存了外部修改。

于 2016-11-15T12:43:02.277 回答
0

就我而言,以下方法有效(至少我尝试过一次):

  1. 转到“待定更改”面板
  2. 在包含或排除的更改下选择查看选项。
  3. 在显示全部显示解决方案更改之间切换
  4. 如果需要,切换回来

刷新 TFS 更改

更改查看选项似乎会强制刷新已修改的文件。

于 2020-07-06T14:30:37.150 回答