我们使用 Team Foundation 服务器进行源代码控制。我经常将文件放入我的项目中(在源代码控制下),但就 TFS 而言却忘记“添加”它们。在某些情况下,TFS 无法拾取新文件(在项目中复制并粘贴文件)。
有没有办法列出所有未标记为“添加”的文件,以便我可以验证所有预期的签入是否发生?
这让我发疯!我们还没有为这个项目设置持续集成,而且我一直丢失文件。直到有人问我文件在哪里我才知道。
在 Subversion 中,这非常简单。
我知道一种解决方案是签出第二份副本,但这并不是真正的最佳解决方法。
转到源代码管理资源管理器,右键单击您感兴趣的文件夹并选择比较。
这将显示未添加的文件以及未经先检出而已修改的文件。
此解决方案不需要电动工具
您可能需要确保安装了最新版本的 TFS 客户端 (VS 2008 SP1),因为这样可以更轻松地处理文件。另外,请查看 TFS Power Tools - 特别是 tfpt 在线命令。
tfpt 命令行有许多方便的 TFS 实用程序。安装 TFS 电动工具后,在 Visual Studio 2008 命令提示符处键入“tfpt help”以获取列表。如果您在解决方案的根目录中执行“tfpt online /r”,它将检测本地文件系统中可写的文件,并挂起对它们的添加或编辑。您可能希望限制该命令,使其仅查找源文件 - 例如“tfpt online /r *.cs”。
是的,有。导航到源代码管理资源管理器。单击您感兴趣的项目。单击“将项目添加到文件夹”按钮。距离刷新按钮还有两点。这将为您提供文件夹中但未添加到源代码管理中的所有文件的列表。
TFS 电动工具 )现在拥有 Windows Shell 扩展,因此您只需使用 Windows 资源管理器即可操作源代码控制文件。
您需要的选项是与工作区版本比较 - 这也可以递归工作,并允许有选择地添加/删除等(是的,tf.exe
可能会有等效的)
(来源:msdn.com)
(来源:msdn.com)
Add > Existing item
。不幸的是,生成的“添加文件对话框”不会自动将范围限制到您单击的文件夹。但是,解决方案资源管理器中还有一个名为“显示所有文件”的按钮。单击此按钮后,将显示未包含在项目中的文件,并获得“包含在项目中”上下文菜单项。包含它们通常会将它们作为“已添加”自动放入 TFS 的“待处理更改”列表中。
(
来源。)
您的所有文件都会淡出,但可见。右键单击每个并选择“包含在项目中”
全部完成后,蜗牛向 Microsoft 邮寄一封投诉信
[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()
}
}