コード例 #1
0
        public void Should_return_empty_for_empty_file()
        {
            blame = GitBlame.Parse("".ToStream());

            blame.Should().NotBeNull();
            blame.Count.Should().Be(0);
        }
コード例 #2
0
 public IBlame Blame(string revision, string filePath)
 {
     using (var blame = GetBlame(revision, filePath))
     {
         return(GitBlame.Parse(blame));
     }
 }
コード例 #3
0
        public static GitBlame Parse(Stream blameData)
        {
            if (blameData == null)
            {
                return(null);
            }

            TextReader reader = new StreamReader(blameData);
            var        result = new GitBlame();
            string     line;

            while ((line = reader.ReadLine()) != null)
            {
                if ((line.Length >= 46) && (line.Length < 100))
                {
                    string[] parts = line.Split(' ');
                    if ((parts.Length == 4) && (parts[0].Length == 40))
                    {
                        string revision = parts[0];
                        int    lines    = Convert.ToInt32(parts[3]);
                        if (!result.ContainsKey(revision))
                        {
                            result.Add(revision, 0);
                        }
                        result[revision] += lines;
                    }
                }
            }

            return(result);
        }
コード例 #4
0
        public void Should_keep_revisions_for_each_line()
        {
            blame = GitBlame.Parse(blame0.ToStream());

            blame["a59b276e18f3d4a548caf549e05188cb1bd3a709"]
            .Should().Be(15);
            blame["54988bdad7dc3f09e40752221c144bf470d73aa7"]
            .Should().Be(3);
            blame["54988bdad7dc3f09e40752221c144bf470d73aa7"]
            .Should().Be(3);
        }
コード例 #5
0
        public void Should_return_null_for_invalid_path()
        {
            blame = GitBlame.Parse(null);

            blame.Should().BeNull();
        }