我们正在使用团队基础服务器进行源代码管理。我经常将文件放入我的项目(在源代码管理下),并且就TFS而言忘记“添加”它们。在某些情况下,TFS不会获取新文件(在项目中复制和粘贴文件)。
有没有办法可以列出所有未标记为“添加”的文件,以便我可以验证所有预定的签到都会发生?
这让我抓狂!我们还没有为这个项目设置持续集成,而且我一直在丢失文件。直到有人问我文件在哪里,我才发现。
在Subversion中,这很简单。
我知道一个解决方案是签出第二个副本,但这不是一个最佳的解决方法。
答案 0 :(得分:65)
转到Source Control Explorer,右键单击您感兴趣的文件夹,然后选择比较。
这将显示未添加的文件以及未经先检出而修改过的文件。
此解决方案不需要Power Tools
答案 1 :(得分:17)
您可能希望确保安装了最新版本的TFS客户端(VS 2008 SP1),这样可以更轻松地处理文件。另外,请查看TFS Power Tools - 尤其是tfpt在线命令。
tfpt命令行有一堆方便的TFS实用程序。安装TFS电动工具后,在Visual Studio 2008命令提示符下键入“tfpt help”以获取列表。如果您在解决方案的根目录中执行“tfpt online / r”,它将检测可在本地文件系统中写入的文件,并为它们添加或编辑。您可能希望限制命令,使其仅查找源文件 - 例如“tfpt online / r * .cs”。
答案 2 :(得分:11)
是的。导航到Source Control Explorer。单击您感兴趣的项目。单击“将项目添加到文件夹”按钮。它是刷新按钮的两个结束。这将为您提供文件夹中但未添加到源代码管理中的所有文件的列表。
答案 3 :(得分:3)
'灵感'来自this answer
TFS Power Tools )现在有Windows Shell Extensions,因此您只使用Windows资源管理器来操作源代码控制文件。
你所选择的选项是与工作区版本比较 - 这也是递归工作的,并且允许选择性地添加/删除等等(是的,tf.exe
可能具有等价物)
答案 4 :(得分:3)
答案 5 :(得分:1)
如果您使用的是Visual Studio,则可以右键单击解决方案资源管理器中的文件夹,然后选择Add > Existing item
。不幸的是,生成的“添加文件对话框”不会自动范围到您单击的文件夹。
但是,解决方案资源管理器中还有一个名为“显示所有文件”的按钮。单击此项后,将显示项目中未包含的文件,并获得“包含在项目中”上下文菜单项。包括它们通常会将它们自动地添加到TFS的“待定更改”列表中。
(Source。)
答案 6 :(得分:0)
像Microsoft一样迁移到git:)
答案 7 :(得分:0)
对于Visual Studio 2017,这仍然是一个问题,但很容易修复: 导航到:解决方案浏览器 刷新圆形箭头右侧的第二个按钮是:显示所有文件 点击
所有文件都会淡出但可见。右键单击每个,然后选择“ INCLUDE in PROJECT”
一切完成后,蜗牛将投诉信寄给Microsoft
答案 8 :(得分:0)
如果我正确理解您的问题,以下 Powershell 脚本会吐出尚未添加的文件:
[hashtable] $lps = [hashtable]::new()
tf info . -recursive | findstr /r /c:"^ Local path :" | foreach-object {
$lp = $_ -replace '^ Local path : ', ''
if ($lp) {
$lps[$lp.toLower()] = $null
}
}
get-childItem -recurse | foreach-object {
if (-not $lps.ContainsKey($_.fullName.toLower())) {
(resolve-path -relative $_.fullName).toString()
}
}