如何让TFS 2010检测到对Visual Studio以外的文件所做的更改?

我在Visual Studio 2010中使用Team Foundation Server 2010。

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

这怎么解决?

如果您在Visual Studio外部工作时与服务器build立了networking连接,则最好先进行检查,然后再编辑文件,或者使用tf命令行客户端,或者使用Windows资源pipe理器shell集成可在TFS电动工具版本中find。 (另外还有越来越多的其他工具可以自动进行TFS集成,但是如果您只是使用记事本,这仍然需要手动操作。)

当然,有很多时候你工作,你没有可用的networking连接,允许你检查文件。

如果你知道你已经修改了哪些文件,你可以从Visual Studio中检查出来,然后你就可以检查它们了。

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

TFS有一个“Reconcile”命令:

  1. 打开Source Control Explorer
  2. 右键单击包含更改的文件夹,然后select比较
  3. select您要调和的文件(按CTRL + Aselect所有文件)
  4. 点击Reconcilebutton
  5. Reconcile Folder Differences对话框中设置选项。 确保没有挂起更改的文件被设置为签出
  6. 点击OK
  7. 如果您有本地更改,将显示“ 检出”对话框。 设置首选的lockingtypes
  8. 点击签出

协调文件夹差异

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

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

(其中directory-name是要更新的目录的path,否则它将检测整个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"* 

我在一个分支上testing了这个解决方法,它帮了我很多。 但是只有新的文件和新的文件夹必须手动完成。

我build议在操作之前创build一个分支。 它隔离你的手术时间。

注意:这种技术也是文件完全相同的清理,TFS总是标记为已修改。

尝试这个。 这是一种解决方法,但它的工作原理:

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

而已。 现在可以看到更改。

还有另外一个解决scheme可以让TFS找出在Visual Studio之外更改过的文件:

  1. 离线打开解决scheme
  2. 在解决scheme资源pipe理器中select解决scheme文件,然后按“联机”button( GoOnline按钮图标

之后,TFS将自动扫描解决scheme以进行更改。

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

  • 使用GoOffline扩展 – 非常简单和有效。
  • 如果在打开解决scheme(无自动域身份validation)时要求您提供TFS凭据,请不要input凭据。 该解决scheme将打开离线,您将在按下Go Onlinebutton后login
  • (极端的解决办法)断开你的网线; 打开解决scheme; 连接网线。

Visual Sourcesafe也是这样工作的,而我得到VSS或TFS注意到这个变化的方法是在Visual Studio中检查一次这个文件。

打开源代码pipe理并转到您的TFS文件夹。 用鼠标右键单击该文件夹,然后select“比较”。

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

我发现这比tfpt online更好,这也让你的文件不只是只读和不编辑。

过去我遇到过这个问题,当我的networking出现故障,离线工作时,我的大部分更改都没有出现在团队资源pipe理器中。

遵循这些步骤:首先,在解决scheme资源pipe理器中,select要重新调和的文件夹(对于我来说,这是我的整个解决scheme文件夹),然后select比较… 在这里输入图像说明 点击修改filter ,然后在filter文本框中input:

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

在这个例子中,它将包含在仅searchC#文件并排除在文件夹:bin,obj和包中。

请注意, Pending Change列有关于文件是否被标记为编辑,添加等的信息,或者没有任何信息。

  • 要标记为编辑 (当本地项目具有匹配的服务器项目时),请select该文件并select检出以编辑…
  • 要标记为添加 (当本地项目没有任何服务器项目时),select该文件并select添加文件

最后,我不知道为什么项目不在这里列出(我删除* .csfilter,仍然不显示),所以重build解决scheme,以确保项目更新以及

+在解决scheme中,单击连接button(如果显示)说去线上

我发现,在Visual Studio 2015中,在项目打开的情况下,Visual Studio自己发现文件已被外部修改,并自动检查出来,而无需执行任何操作。 以正常方式检入项目保存了外部修改。