Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/tfs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Visual studio 2012 如何使TFS反映文件系统更改,而不是解决方案资源管理器_Visual Studio 2012_Tfs - Fatal编程技术网

Visual studio 2012 如何使TFS反映文件系统更改,而不是解决方案资源管理器

Visual studio 2012 如何使TFS反映文件系统更改,而不是解决方案资源管理器,visual-studio-2012,tfs,Visual Studio 2012,Tfs,我是TFS的新手,来自CVS和Subversion的背景,有一些Git和Mercurial的影响。我发现我经常与它发生冲突,因为它无法将文件系统上的工作副本状态与版本控制中的工作副本状态进行比较。相反,它会根据您在解决方案资源管理器和VisualStudio中所做的工作,向您显示它认为的文件系统状态 例如,如果您在解决方案资源管理器中删除一个文件,然后在其他工具(通常是Windows资源管理器)中替换该文件,TFS将坚持删除该文件。此外,它将“检测”替换并将其建议为“添加”,但它不会让您升级,因

我是TFS的新手,来自CVS和Subversion的背景,有一些Git和Mercurial的影响。我发现我经常与它发生冲突,因为它无法将文件系统上的工作副本状态与版本控制中的工作副本状态进行比较。相反,它会根据您在解决方案资源管理器和VisualStudio中所做的工作,向您显示它认为的文件系统状态

例如,如果您在解决方案资源管理器中删除一个文件,然后在其他工具(通常是Windows资源管理器)中替换该文件,TFS将坚持删除该文件。此外,它将“检测”替换并将其建议为“添加”,但它不会让您升级,因为“添加”与“删除”冲突。解决此问题没有简单的方法,因为您也无法撤消“删除”-如果文件在文件系统中仍然存在,则无法撤消“删除”

在我看来,这是一场灾难。为什么它不能忘记您以前在解决方案资源管理器中所做的操作,并向您显示当前状态:即,文件仅发生了更改(或保持不变)

类似地,如果您在Visual Studio中编辑一个文件,然后对其进行编辑以撤消这些更改,TFS会坚持认为该文件已被修改,有时,即使没有有效的更改,提交的修订与更改后的新修订相同


是否有任何方法可以断开此链接并禁用Visual Studio内对您的操作的跟踪?即,当您刷新“挂起的更改”时,它会查看文件系统上工作副本的当前状态,并将其与头版本区分开来?

如果您使用的是TFS 2012,您可以这样做:它使用本地文件系统的方式更类似于SVN,尽管它可能在各个方面都不匹配


请注意,如果您的工作区中有50000个以上的项目,.

这与解决方案资源管理器本身无关。Team Foundation Server,当它在“服务器工作区”模式下运行时,是一种源代码控制系统。这意味着您必须明确通知版本控制系统您正在进行更改。这允许它扩展到非常大的存储库,因为它不必像编辑/合并/提交(如TFS“本地工作区”或Subversion)或分布式版本控制系统(如Git)那样扫描文件系统

VisualStudio或Eclipse将与源代码管理系统交互,因此当您开始编辑(或删除)文件时,它将通知TFS您所做的更改,这样您就不需要手动进行这些更改。如果您与其他程序(Windows资源管理器、记事本等)的工作副本交互,则需要使用
tf
命令行客户端或源代码管理器手动挂起这些更改


如果您觉得这令人沮丧,并且不需要TFS服务器工作区的扩展能力,那么您可以使用,它将扫描文件系统并注意您在IDE之外所做的任何更改。当然,您也可以使用Visual Studio和TFS 2013内置的Git支持。

@Xharlie打开编辑工作区对话框:-然后选择“高级”按钮,并将“位置”从“服务器”切换到“本地”。这需要TFS 2012和VS 2012。谢谢-我找到了窗口。将“管理工作区”作为一项放在工作区组合框中是愚蠢的!我的工作区已经是本地工作区,这意味着我正在与之斗争的行为仍然存在于本地工作区中。如果我确保在Visual Studio中执行所有操作或在Visual Studio中不执行任何操作,即关闭VS、在文件系统上工作、打开VS并升级检测到的更改,则TFS工作正常。在IDE中工作以模拟后一种情况时,是否可以简单地关闭更改跟踪?编辑您的工作区并单击“高级”。您应该获得服务器/本地的选择列表