2015-09-04 87 views
0

我试图使用CLI命令tf history(是的,我仅限于CLI)查找所有的TFS提交。如何从CLI查询特定用户的TFS历史记录

我看到TFS有一个/用户选项,但它似乎不起作用。例如,如果我只看不使用滤镜,我会得到一击,如

Changeset User    Date  Comment 
--------- ----------------- ---------- ------------------------------ 
10945  Rocha, John R  9/4/2015 LO-4838 Update label # to 47 

然而,当我尝试命令:

tf history . /noprompt /recursive /stopafter:10 /user:"Rocha, John R" 

它导致

Option user requires exactly one value. 

上午什么我错过了?

+0

你没有提供/用户:用户名要求。除非“Rocha,John R”是你的用户名,我怀疑。 –

+0

我不知道从TFS的角度来看我的用户名。它为用户显示“Rocha,John R”......它应该接受“Rocha,John R”作为用户。 –

回答

1

用户名中的逗号造成问题,因为它认为指定了多个用户名。

它可能工作,如果你尝试用户名而不是显示名称 - 我无法测试,因为我是相同的。

您可以通过运行发现:

net user "Rocha, John R" /domain 

希望有一个用户名返回不在它“”有。

查看的是TFS命令行分析器的源代码,我看不到解决办法,用户的选择被宣布为MultipleValues风格,和值解析器MutlipleValues分割上,没有转义序列我可以看到 - 在tf history命令,然后验证只有一个值可以从用户选项返回。

下面是从解析器代码:

case Options.Style.MultipleValues: 
{ 
    int num; 
    while ((num = argument.IndexOf(',', startIndex)) != -1) 
    { 
     if (num - startIndex == 0) 
     { 
      throw new Command.ArgumentListException(ClientResources.ExtraCommaInOption(invokedAs)); 
     } 
     option.Values.Add(argument.Substring(startIndex, num - startIndex)); 
     startIndex = num + 1; 
    } 
    if (argument.Substring(startIndex).Length == 0) 
    { 
     throw new Command.ArgumentListException(ClientResources.ExtraCommaInOption(invokedAs)); 
    } 
    option.Values.Add(argument.Substring(startIndex)); 
    return; 
}