internal GitCommit(GitRepository repository, GitObjectBucket objectReader, GitId id) : base(repository, id) { _rb = new GitCommitObjectBucket(objectReader); }
internal static async ValueTask <GitObject> FromBucketAsync(GitRepository repository, GitObjectBucket rdr, GitId id, GitObjectType type = GitObjectType.None) { GitObjectType tp; if (type == GitObjectType.None) { tp = await rdr.ReadTypeAsync().ConfigureAwait(false); } else { tp = type; } switch (tp) { case GitObjectType.Commit: return(new GitCommit(repository, rdr, id)); case GitObjectType.Tree: return(new GitTree(repository, rdr, id)); case GitObjectType.Blob: return(new GitBlob(repository, rdr, id)); case GitObjectType.Tag: return(new GitTagObject(repository, rdr, id)); default: throw new ArgumentOutOfRangeException(nameof(type)); } }
internal GitTagObject(GitRepository repository, GitObjectBucket rdr, GitId id) : base(repository, id) { _rb = new GitTagObjectBucket(rdr); }