2

我是 libgit 锐利库的新手。我有一行代码适用于 libgit sharp v0.15。我已将软件包更新到最新版本 0.22。Repository.Network.FetchHeads.FirstOrDefault()

FetchHeads 在 v0.17 ( https://github.com/libgit2/libgit2sharp/blob/master/CHANGES.md ) 中已弃用。

这是我要重写的片段

var latestRemoteHead = repo.Network.FetchHeads.FirstOrDefault();
if (latestRemoteHead != null){
    var latestRemoteHeadCommit = (Commit)latestRemoteHead.Target;
    repo.Reset(ResetMode.Hard, latestRemoteHeadCommit);
}
4

1 回答 1

0

FetchHead作为Expand Merge API PR #643的一部分,在提交 c7e11bbff588c0f2b84b3f9dbdfaf2e5ef00cf91中确实已弃用:

  • 弃用Network.FetchheadsRepository.MergeHeads因为这些应该只是内部的。
  • 引入为当前分支拉取配置的上游分支的能力

2014 年 4 月为 libgit2sharp 0.18提交 35ea14d将 FetchHead 类设置为 internal

您需要列出所有远程分支并检查它们的 HEAD 提交,以便从 FetchHeads 中取回您所拥有的内容。

作为第一条线索,请参阅LibGit2Sharp.Tests/TestHelpers/ExpectedFetchState.cs列出branch.Tip.Id

于 2016-08-13T08:46:40.687 回答