コード例 #1
0
        public void GetBranchList_Test()
        {
            var result = GitParser.GetBranchList(_exampleBranchList);

            AreEqual("fix/SyncWithUi", result.First());
            AreEqual("master", result.Last());
        }
コード例 #2
0
        public void Parser()
        {
            var processResult = TestBase.Git.GitProcess(Environment.CurrentDirectory, GitCommand.BranchList);
            var result        = GitParser.SplitString(processResult);

            AreEqual("  fix/SyncWithUi", result.First());
            AreEqual("* master", result.Last());
        }
コード例 #3
0
ファイル: SolrManager.cs プロジェクト: vcu-swim-lab/KnowHows
        /// <summary>
        /// Call GitParser on a local repository for parsing.
        /// The commit tree is walked until no new commits remain.
        /// </summary>
        private List <CodeDoc> ParseRepository(GitHubUser user, string repo_path)
        {
            List <CodeDoc> parsed_files = new List <CodeDoc>();
            GitParser      git_parser   = new GitParser(repo_path);

            do
            {
                var current_commit = git_parser.ParseCurrentCommit();
                foreach (CommitFile file in current_commit)
                {
                    parsed_files.Add(
                        new CodeDoc
                    {
                        Id                 = file.Commit_Sha,
                        Sha                = file.Commit_Sha,
                        Author_Date        = file.Authored_Date,
                        Author_Name        = file.Author_Name,
                        Channel            = user.ChannelID,
                        Committer_Name     = user.UserID,
                        Accesstoken        = user.GitHubAccessToken,
                        Filename           = file.Filename,
                        Previous_File_Name = file.Previous_Filename,
                        Raw_Url            = file.Raw_Url,
                        Blob_Url           = file.Blob_Url,
                        Unindexed_Patch    = file.Parsed_Patch,
                        Patch              = file.Parsed_Patch,
                        Repo               = file.Repository,
                        Html_Url           = file.Commit_Url,
                        Message            = file.Commit_Message,
                        Prog_Language      = file.Language
                    }
                        );
                }
            } while (git_parser.Walk());

            return(parsed_files);
        }
コード例 #4
0
        public void GetUrl_Test()
        {
            var result = GitParser.GetRemoteUrl(_exampleRemote);

            AreEqual(@"https://github.com/MiroslavMikus/DependencyScanner.git", result);
        }
コード例 #5
0
        public void GetMaster_Test()
        {
            var result = GitParser.GetCurrentBranch(_exampleBranchList);

            AreEqual("master", result);
        }
コード例 #6
0
        /// <summary>Check latest gitter version on this chanel.</summary>
        /// <returns>Latest gitter version.</returns>
        public Version CheckVersion()
        {
            Version result = null;
            var     cmd    = new LsRemoteCommand(
                LsRemoteCommand.Heads(),
                LsRemoteCommand.Tags(),
                new CommandParameter(_url));

            GitOutput output;

            try
            {
                output = GitProcess.Execute(new GitInput(cmd));
            }
            catch
            {
                return(null);
            }
            if (output.ExitCode != 0)
            {
                return(null);
            }
            var    parser     = new GitParser(output.Output);
            string branchSHA1 = null;

            while (!parser.IsAtEndOfString)
            {
                var sha1    = parser.ReadString(40, 1);
                var refname = parser.ReadLine();
                if (branchSHA1 == null)
                {
                    if (refname == GitConstants.LocalBranchPrefix + _branch)
                    {
                        branchSHA1 = sha1;
                    }
                }
                else
                {
                    if (sha1 == branchSHA1 &&
                        refname.Length > GitConstants.TagPrefix.Length + 1 &&
                        refname.StartsWith(GitConstants.TagPrefix) &&
                        refname[GitConstants.TagPrefix.Length] == 'v')
                    {
                        var s = GitConstants.TagPrefix.Length + 1;
                        var e = refname.Length - 1;
                        while (s < refname.Length && !char.IsDigit(refname[s]))
                        {
                            ++s;
                        }
                        while (e > 0 && !char.IsDigit(refname[e]))
                        {
                            --e;
                        }
                        if (e > s && Version.TryParse(refname.Substring(s, e - s + 1), out result))
                        {
                            break;
                        }
                        else
                        {
                            result = null;
                        }
                    }
                }
            }
            return(result);
        }