2015-09-04 70 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; 
}