3

ループしてみnew LibGit2Sharp.Repository(path).Commitsましたが、マスターのコミットのみを通過しているようです(または、HEADが指している場所を推測しますか?)。

リポジトリ内のブランチに関係なく、リポジトリ内のすべてのコミットをループし、コミットが発生した日時(日付)の順にループする方法を教えてください。

私はこれをgit log、ブランチに関係なくコミットを日付順にリストするなどの目的で行っています。

参照されていないコミットもループできる場合(つまりgit reset、一部のコミットから離れて、コミットが参照されなくなり、gcされようとしている場合)のボーナスポイント。

考え?

4

1 に答える 1

2

のサポートはgit log --all、次の構文で実現可能である必要があります

using (var repo = new Repository(yourRepoPath))
{
      var commits = repo.Commits.QueryBy(new Filter { Since = repo.Refs });
}

また、結果の順序を制御するFilterためのプロパティを公開します。SortByデフォルトの並べ替え(GitSortOptions.Time)は、最新のコミットを最初に出力します。

参照されていないコミットもループできる場合のボーナスポイント

reflogのコミットやぶら下がっているコミットにアクセスする方法はありません(まだ?)。それなら、ボーナスポイントはないと思います:-)

于 2012-05-06T14:26:07.537 に答える