TFS:我如何选择之前提交的评论之一?

时间:2011-04-18 09:20:55

标签: tfs checkin

通常我想使用之前的提交评论(并且只编辑一个字)来办理登机手续。

我习惯于日食,这个功能很有效。

它还可用于TFS吗?我还没有找到它(尽管网页搜索速度很快),我是否会失明? (我目前正在使用TFS 2010和VisualStudio 2010)

最好的问候,Mayoares

2 个答案:

答案 0 :(得分:4)

我认为VS中没有任何内容可以帮助(除了通过更改历史记录剪切和粘贴)。

然而,带有PSCX(PowerShell社区扩展)和TFS PowerToys PowerShell管理单元的小型PowerShell将执行此操作,并将当前文件夹设置为解决方案根目录:

(Get-TfsItemHistory . -recurse -stop 1).Comment | Set-Clipboard

会将评论放在剪贴板中。在TFS中使用NuGet powershell会话,这可能会完全自动化(留作练习)。

答案 1 :(得分:0)

不要忘掉@Richard提供解决方案的关键 - 我已经提出了他的答案 - 但这里还有更多要说的。

OP略显含糊:标题倾向于选择一些最近的提交消息的能力,而机构更建议检索最新的提交消息。理查德完全解释了后者,但我认为值得对前者发表评论。

考虑这个函数,它使用了理查德提到的TFS 2013 Power Tools中的Get-TfsItemHistory

function Get-TfsComment([string]$pattern = ".*", [string]$Path = ".")
{
    Get-TfsItemHistory $Path -Recurse | ? { $_.Comment -match $pattern }
}

有了这个,请尝试:

# Get all comments
Get-TfsComment

# Get 10 latest comments
Get-TfsComment | Select -First 10

# Get all comments containing "bug" and "fix"
Get-TfsComment "bug.*fix"

# Get all comments in your tests folder containing "support"
Get-TfsComment -path .\tests -pattern support

此函数的输出生成Microsoft.TeamFoundation.VersionControl.Client.Changeset个对象的集合;它显示的默认属性列表通常是您所需要的:

Changes Owner               CreationDa Comment
   etId                             te
------- -----               ---------- -------
   1187 MYDOMAIN\fred        3/13/2014 Bug fixes for xyz...
   1118 MYDOMAIN\wilma        3/7/2014 New features 139 and 448
   1076 MYDOMAIN\barney      2/28/2014 Who remembers this...?
. . .

(请注意,如果将输出传递给FormatTable -AutoSize,则会处理列标题中优化不佳的换行。)