我今天对文件进行了一些相当复杂的更改,但事情在应用程序中停止了。我意识到这是因为我不小心删除了一些我不是故意的代码。没什么大不了的,我可以将我当前的代码与最后签入的副本进行比较,找到我删除的代码......
除了文件不是IN源控件。该项目的其余部分是。但由于原因不明,这个文件,绝不是一个新文件,不存在。它没有出现在未决的变化中。由于某些原因,VS从未检查过它。(我很幸运,我没有退出VS,并且能够取消删除足以获得原始代码)。
有没有办法,然后手动逐个检查几千个文件,告诉项目/解决方案中的哪些文件不受源代码管理?
或者除此之外,是否有一种方法类似于“获取最新”但反过来?基本上,我希望递归地将解决方案中的所有内容添加到源代码控制中(即使它应该全部都在源代码控制之下)。
答案 0 :(得分:2)
1)使用本地工作区进行TFS
如果您的TFS工作区设置为本地工作区(有关此含义的说明,请参阅this blog post),运行tf status
将显示检测到的更改列表。这将是从磁盘添加或删除的任何文件,而不是明确地添加到源代码控制。
本地工作空间还有一些其他细节,例如能够在没有设置只读位的情况下执行大部分编辑,并且无需连接到TFS服务器来签出文件。并且它确实会产生一些开销来在本地跟踪所有这些变化,因此需要进行权衡。博客文章涵盖了大部分细节。
您可以使用以下步骤在服务器和本地之间切换工作区:
tf workspace
)此过程需要一段时间才能运行,因为它会创建本地缓存或将缓存状态同步回服务器(具体取决于您更改它的方式),但您不必创建新工作区。
2)使用Source Control Explorer
VS中的Source Control Explorer窗口在其工具栏上有一个按钮,用于比较文件夹。这允许您将源代码管理中的文件夹与磁盘上的文件夹进行比较,包括仅存在于任一侧的文件或具有差异的文件。