[英]How can I get file binary data out of Git repository using LibGit2Sharp?
我決定嘗試將我的項目從使用GitSharp遷移到LibGit2Sharp,因為不再主動維護GitSharp。 使用GitSharp,我能夠在給定分支的情況下訪問檢查到我的倉庫中的任何文件的原始字節。 我無法使用LibGit2Sharp找到任何文檔或示例代碼。
有人能給我以及如何做到這一點的例子嗎?
Blob
類型公開一個返回byte[]
的Content
屬性。
從BlobFixture.cs文件中提取以下測試並演示此屬性的用法。
[Test]
public void CanReadBlobContent()
{
using (var repo = new Repository(BareTestRepoPath))
{
var blob = repo.Lookup<Blob>("a8233120f6ad708f843d861ce2b7228ec4e3dec6");
byte[] bytes = blob.Content;
bytes.Length.ShouldEqual(10);
string content = Encoding.UTF8.GetString(bytes);
content.ShouldEqual("hey there\n");
}
}
在此特定測試中,通過LookUp()
方法直接檢索Blob GitObject。 您還可以從Tree
的“ Files
屬性訪問Blob。
關於更具體的請求,以下單元測試應該向您展示如何從Branch
的尖端訪問Blob的原始字節 。
[Test]
public void CanRetrieveABlobContentFromTheTipOfABranch()
{
using (var repo = new Repository(BareTestRepoPath))
{
Branch branch = repo.Branches["br2"];
Commit tip = branch.Tip;
Blob blob = (Blob)tip["README"].Target;
byte[] content = blob.Content;
content.Length.ShouldEqual(10);
}
}
注意:此測試顯示了訪問Blob
另一種方式(作為抽象TreeEntry
)。 因此,使用演員表。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.