libgit2 / libgit2/libgit2sharp

GitRepo.Commits.QueryBy(fpath) fails with "Given key not present in dictionary" for some folders only on master branch!

オープン
#1,520 コメント 5 件 リアクション 1 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

Up for grabs
主要言語
C#
スター
3.5k
フォーク
925
PR マージ指標
30日以内にマージされた PR はありません

説明

I use this code:

GitRepo = new Repository(Repository.Discover(SolutionDir));

string fpath = folder.Replace(SolutionDir, string.Empty).Replace("\", "/").TrimStart('/');

        foreach (var c in GitRepo.Commits.QueryBy(fpath).Take(1))
        {
            revisionsList.Add(folder.Split(Path.DirectorySeparatorChar).Last(), c.Commit.Committer.When.ToUnixTimeSeconds());
        }

The GitRepo.Commits.QueryBy(fpath) fails for some folders on master branch and only on master.

It works fine when you run it of a branch made from master.

I tried to get back the version of the library and found this code works in v0.22.1 from nuget.

It fails for 0.23.0, 0.23.1, 0.24.0 - all tested to fail.

If you can fix it in 0.24.1 will be great.

Thanks,

コントリビューションガイド

コントリビューションガイドを開く

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

調査の方向性

GitRepo.Commits.QueryBy(fpath) から開始し、master 上の影響を受けるフォルダーについて辞書例外を再現し、master から作成したブランチと比較します。v0.22.1 と v0.23.0–v0.24.0 の間で動作を比較します。同じパスが master で失敗しなくなり、期待される commit データを引き続き返すようになれば完了です。

索引モデルが issue の本文から書いたものです。

評価

技術スタック
csharp, git
領域
tooling
issue の種類
バグ
難易度
4/5
見積もり時間
3〜5日
活発さ
停滞
明瞭さ
おおむね明確
初心者へのやさしさ
35/100

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。