使用C#搜索TFS git存储库文件

时间:2017-08-29 18:51:10

标签: c# git tfs

我试图让我的C#应用​​程序遍历所有TFS git项目,并在文件中搜索字符串模式。我开始以这种方式连接我。

 var tfs = TfsTeamProjectCollectionFactory.GetTeamProjectCollection(new Uri("https://tfs.domain.com/tfs"));
 tfs.EnsureAuthenticated();
 var gitSvc = tfs.GetService<GitRepositoryService>();

我没有找到一种方法来获取所有git项目信息以通过foreach循环。我看到here中的一些代码将从tfs.Getservice获取所有项目。

 var tfs = TfsTeamProjectCollectionFactory
         .GetTeamProjectCollection(new Uri("http://{tfsserver}:8080/tfs"));

        tfs.EnsureAuthenticated();

        var versionControl = tfs.GetService<VersionControlServer>();


        StreamWriter outputFile = new StreamWriter(@"C:\Find.txt");
        var allProjs = versionControl.GetAllTeamProjects(true);
        foreach (var teamProj in allProjs)
        {
            foreach (var filePattern in filePatterns)
            {
                var items = versionControl.GetItems(teamProj.ServerItem + "/" + filePattern, RecursionType.Full).Items
                            .Where(i => !i.ServerItem.Contains("_ReSharper"));  //skipping resharper stuff
                foreach (var item in items)
                {
                    List<string> lines = SearchInFile(item);
                    if (lines.Count > 0)
                    {
                        outputFile.WriteLine("FILE:" + item.ServerItem);
                        outputFile.WriteLine(lines.Count.ToString() + " occurence(s) found.");
                        outputFile.WriteLine();
                    }
                    foreach (string line in lines)
                    {
                        outputFile.WriteLine(line);
                    }
                    if (lines.Count > 0)
                    {
                        outputFile.WriteLine();
                    }
                }
            }
            outputFile.Flush();
        }
    }

如何使用上面的代码执行类似的操作,但是使用Team Foundations Git库?

1 个答案:

答案 0 :(得分:1)

有一个PowerShell示例来获取Git项目,您可以尝试将其转换为C#代码。参考这个帖子: https://social.msdn.microsoft.com/Forums/office/en-US/ce12ede3-8b14-49de-962a-20e68e0a6d00/how-to-use-microsoftteamfoundationgitclient-in-powershell-script?forum=tfsgeneral

如果您使用的是TFS 2017,建议您使用Code Search,有关详细信息,请参阅Set up and administer Microsoft Code Search/Work Item Search