コード例 #1
0
        public void ReadMergeCommitTest()
        {
            // This commit has two parents
            using (var compressedFile = File.OpenRead(Path.Combine(RepositoryPath, "fork1/.git/objects/22/abd96d9c295c43ba96c60d2f44b52697c07586")))
                using (var commitStream = GitObjectStream.Create(compressedFile, -1))
                {
                    commitStream.ReadObjectTypeAndLength("commit");

                    var commit = GitCommitReader.Read(commitStream, GitObjectId.Parse("22abd96d9c295c43ba96c60d2f44b52697c07586"));

                    Assert.Collection(
                        commit.Parents,
                        c => Assert.Equal("ad86ad89e56fdf14a307d06af6efa7930218abba", c.ToString()),
                        c => Assert.Equal("01d33864bd1a114e619f9e7c22f448cca6123b34", c.ToString()));
                }
        }
コード例 #2
0
        public void ReadTest()
        {
            using (Stream rawStream = TestUtilities.GetEmbeddedResource(@"ManagedGit\3596ffe59898103a2675547d4597e742e1f2389c.gz"))
                using (GitObjectStream stream = new GitObjectStream(rawStream, "commit"))
                    using (var sha = SHA1.Create())
                    {
                        Assert.Equal(137, stream.Length);
                        var deflateStream = Assert.IsType <DeflateStream>(stream.BaseStream);
                        Assert.Same(rawStream, deflateStream.BaseStream);
                        Assert.Equal("commit", stream.ObjectType);
                        Assert.Equal(0, stream.Position);

                        var hash = sha.ComputeHash(stream);
                        Assert.Equal("U1WYLbBP+xD47Y32m+hpCCTpnLA=", Convert.ToBase64String(hash));

                        Assert.Equal(stream.Length, stream.Position);
                    }
        }
コード例 #3
0
        protected override void LoadBody(GitObjectStream content)
        {
            var body = content.ReadToEnd().ToAsciiString();
            var lines = body.Split('\n');

            foreach (var line in lines)
            {
                if (line.StartsWith("tree"))
                    TreeId = GetTreeId(line);

                if (line.StartsWith("author"))
                    Author = GetSignature(line);

                if (line.StartsWith("committer"))
                    Committer = GetSignature(line);
            }

            Comment = ReadComment(body);
        }
コード例 #4
0
 public void Load(GitObjectStream content)
 {
     content.ReadBytes(SecLength);
     content.ReadBytes(NSecLength);
 }
コード例 #5
0
ファイル: Blob.cs プロジェクト: jagregory/jagregory-gitsharp
 protected override void LoadBody(GitObjectStream content)
 {
     Content = content.ReadToEnd().ToAsciiString();
 }
コード例 #6
0
        private string ReadType(GitObjectStream content)
        {
            byte[] word = content.ReadWord();

            return word.ToAsciiString();
        }
コード例 #7
0
        private long ReadContentLength(GitObjectStream content)
        {
            byte[] word = content.ReadToNull();

            return long.Parse(word.ToAsciiString());
        }
コード例 #8
0
 protected virtual void LoadHeader(GitObjectStream content)
 {
     Type = ReadType(content);
     ContentLength = ReadContentLength(content);
 }
コード例 #9
0
 protected abstract void LoadBody(GitObjectStream content);
コード例 #10
0
 public void Load(GitObjectStream content)
 {
     LoadHeader(content);
     LoadBody(content);
 }