在 Team Foundation Server 中查找未添加的文件

问题描述 投票:0回答:10

我们使用 Team Foundation 服务器进行源代码控制。我经常将文件放入我的项目中(在源代码控制下),但就 TFS 而言却忘记“添加”它们。在某些情况下,TFS 无法拾取新文件(在项目中复制并粘贴文件)。

有没有办法列出所有未标记为“添加”的文件,以便我可以验证所有预期的签入是否发生?

这让我发疯!我们还没有为这个项目设置持续集成,而且我一直丢失文件。直到有人问我文件在哪里我才知道。

在 Subversion 中,这非常简单。

我知道一种解决方案是签出第二份副本,但这并不是真正的最佳解决方法。

version-control tfs
10个回答
69
投票

转到源代码管理资源管理器,右键单击您感兴趣的文件夹并选择比较。

这将显示未添加的文件以及未经先检出而已修改的文件。

此解决方案不需要电动工具


17
投票

您可能需要确保安装了最新版本的 TFS 客户端 (VS 2008 SP1),因为这样可以更轻松地处理文件。另外,请查看 TFS Power Tools - 特别是 tfpt 在线命令。

tfpt 命令行有许多方便的 TFS 实用程序。安装 TFS 电动工具后,在 Visual Studio 2008 命令提示符处键入“tfpt help”以获取列表。如果您在解决方案的根目录中执行“tfpt online /r”,它将检测本地文件系统中可写的文件,并挂起对它们的添加或编辑。您可能希望限制该命令,使其仅查找源文件 - 例如“tfpt online /r *.cs”。


12
投票

是的,有。导航到源代码管理资源管理器。单击您感兴趣的项目。单击“将项目添加到文件夹”按钮。距离刷新按钮还有两点。这将为您提供文件夹中但未添加到源代码管理中的所有文件的列表。


4
投票

在 VS 2015 中,这帮助我将文件添加到版本控制

  1. 在源代码管理资源管理器中打开“将项目添加到文件夹...”上下文菜单项

  2. 添加必要的文件


3
投票

“受到”这个答案的启发

TFS 电动工具 )现在拥有 Windows Shell 扩展,因此您只需使用 Windows 资源管理器即可操作源代码控制文件。

您需要的选项是与工作区版本比较 - 这也可以递归工作,并允许有选择地添加/删除等(是的,

tf.exe

可能会有等效的)


(来源:msdn.com


(来源:msdn.com


1
投票
如果您使用的是 Visual Studio,则可以右键单击解决方案资源管理器中的文件夹并选择

Add > Existing item

。不幸的是,生成的“添加文件对话框”不会自动将范围限制到您单击的文件夹。

但是,解决方案资源管理器中还有一个名为“显示所有文件”的按钮。单击此按钮后,将显示未包含在项目中的文件,并获得“包含在项目中”上下文菜单项。包含它们通常会将它们作为“已添加”自动放入 TFS 的“待处理更改”列表中。

来源。)


1
投票
迁移到 git,就像 Microsoft 正在做的那样 :)


0
投票
对于 Visual Studio 2017,这仍然是一个问题,但很容易修复: 导航至:解决方案浏览器 刷新圆形箭头右侧的第二个按钮是:显示所有文件 点击那个

您的所有文件都会淡出,但可见。右键单击每个并选择“包含在项目中”

全部完成后,蜗牛向 Microsoft 邮寄一封投诉信


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() } }
    

0
投票
在 TFS 源代码管理资源管理器中 右键单击根文件夹,子文件夹中的某些位置可能包含未添加的文件 选择比较 检查选项

    显示仅存在于目标路径中的项目
  • 显示不同的项目
然后 diff 结果将显示丢失的文件。

© www.soinside.com 2019 - 2024. All rights reserved.