如何通过注释文本查找和查看TFS变更集?

138

我需要使用TFS按照评论和/或开发人员查找变更集。也许今天我只是盲目地找不到,在源代码控制资源管理器中没有简单的方法可以完成这个任务吗?


1
现在在VSTS /最新的TFS中,您可以按作者过滤提交历史记录中的提交,但似乎仍然不能在提交注释上进行过滤/搜索... 我真的不明白为什么这样做还没有被提出来,我已经在uservoice上创建了一个请求:https://visualstudio.uservoice.com/forums/330519-visual-studio-team-services/suggestions/33810043-search-filter-commit-messages - Sÿl
11个回答

168
如果您安装了TFS Power Tools,可以在命令提示符中运行以下内容:
tfpt searchcs

使用 TFS Power Tools(2011年3月版本) 和 TFS 2010,获取一个具有按提交者和注释文本搜索选项的GUI窗口。


4
对我而言,这个方法行得通,但需要在设置方面反复尝试。 服务器名称: 我的服务器URL格式为http://tfs01:8080/tfs,在VS2010中找到方法是:选择Team菜单,连接到Team Foundation Server,然后点击“服务器”按钮即可看到现有的服务器。在服务器路径下: 我注意到它实际上是在寻找本地映射路径,所以应该是C:\tfs\myfolders\etc,而不是从服务器角度看到的URL路径。 - goodeye
1
Stackoverflow将我上面关于URL格式的评论转换为了链接。实际上它是http://tfs01:8080/tfs - goodeye
1
可以在 Visual Studio 2012 中与 TFS 2012 一起使用。 - jessegavin
2
这个命令在cmd.exe中可以运行,但在VS命令窗口中无法运行。 - rstackhouse
在我的VS 2013中无法工作,不得不从命令提示符中执行。 - Rush Frisby
显示剩余6条评论

110

简单易行,无需第三方应用或插件:

  1. 打开源代码控制资源管理器
  2. 从TFS服务器根目录中选择“查看历史记录”
  3. 向下滚动到底部(按“End”键可以快速到底部)
  4. 选择所有记录,然后复制
  5. 打开Excel并将内容粘贴进去

现在,Excel 将允许你通过评论进行搜索(Excel 是本地应用程序,不要争论..)。


15
使用这种方法,我认为你不会搜索整个提交消息以查找较长的提交消息(注意粘贴时出现省略号),这将使它在你确定要查找第一行摘要中的内容时非常有用,但否则会很危险。 - user15486
1
如此简单且零配置的方式 - Mostafa Armandi
6
我承认,一开始看到这个时我有些不舒服,但后来我说算了别用第三方工具了,这个想法很好用。谢谢! - Chris Hawkes
5
当您有超过10万个变更集时,这不是一个解决方案。 - Diogo Luis
7
我很遗憾需要这么做。 ;) - Kai Hartmann
显示剩余2条评论

21

如果已安装 Power Tools:

tf history $/ -r | ? { $_.comment -like '*findme*' }

3
请原谅我的无知,您将tfhistory的结果管道传输到的"?"命令是什么? - Mal Ross
3
这是 Where-Object 命令的标准别名。请参阅“help where -full”获取完整详情。 - Richard Berg
5
这无法直接在cmd.exe提示符下运行,但可以在PowerShell控制台中(对于-like参数的格式需要进行一些调整)。 - Emyr

20

3
很遗憾,它不支持VS 2012和VS 2013。 - Andrija
2
如果您前往该项目的 CodePlex 网站,您将会找到一个 VS2012 版本(我尚未测试)。https://findchangeset.codeplex.com/ - Maarten
2
但说实话,使用 tfpt searchcs 更容易。 - Maarten
啊哈,是的。我以前用过它,但不记得如何启动了,哈哈。你只需启动“Visual Studio命令提示符”,然后执行@Maarten上面提到的命令。当然,你需要先安装Power Tools! - strider

18

如果你想查找搜索词findme,而不想安装电源工具,以下命令也有效。

Windows: tf history "$/Team Project/Development" /noprompt /recursive | findstr findme

Linux: tf history "$/Team Project/Development" /recursive | grep findme

注意。如果你觉得这个命令很有用,请感谢此人


2
如果您想搜索整个消息,请添加“/format:detailed”。如果这需要太长时间,请设置日期范围(例如“/v:D1/1/2012~D12/31/2012”)以减少搜索空间。 - user15486

8

您可以使用命令行客户端:将tf history的输出导入到文件中,然后使用您喜欢的任何搜索程序。


5
tf 历史 $/ /r /user:用户名 /format:detailed > d:\changeset_details.txt - ray

3

这就是我所说的。谢谢 =) - Th3B0Y

3

我不知道通过评论文本进行搜索的方法,但这将允许通过开发人员进行搜索:

如果您打开菜单项 文件->源代码控制->在源代码控制中查找->更改集... (您必须在源代码控制资源管理器中才能使用此功能)。 这将打开“查找更改集”对话框。 然后,您可以按给定源文件夹(或项目)上的开发人员搜索更改集。

这将显示评论,但您无法通过它们进行搜索。(尽管您可以按评论对列表进行排序,并以此找到要查找的评论。)

顺便说一句,如果您想通过此对话框查看更改集的详细信息,您必须单击“详细信息”按钮。 双击更改集会关闭对话框。


1
@Downvoter - 为什么要点踩?OP说了“和/或开发者”。这是一个“或开发者答案”。 - Vaccano

2

要查看团队成员的签入记录:

在团队资源管理器中,导航到团队项目,导航到团队成员,右键单击要查看变更集的团队成员,并选择“显示签入历史记录”。


2

我在VisualStudio中将TFS Power Tools的tfpt searchcs作为外部工具添加了:

  • 命令:C:\Program Files (x86)\Microsoft Team Foundation Server 2015 Power Tools\TFPT.EXE (或者你安装TFS Power Tools的位置)
  • 参数:searchcs /collection:http://tfsserver:8080/tfs $(SolutionDir) (解决方案路径会被转换为服务器路径)
  • 初始目录:c:\path\to\your\vs\IDE (除非tf.exe在路径中(默认情况下不是这样),否则可以查看搜索对话框中的更改集详细信息,因为它运行tf.exe)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接