libgit2 / libgit2/libgit2sharp

Deleted tags show up in the list

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

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

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

説明

Reproduction steps
  1. Add a new tag in github repository online (www.github.com).
  2. Run .Net core Controller.
  3. Added tag show up in the Api.
  4. Delete a tag in github repository online.
  5. Run controller and API.
  6. Deleted tag show up in API Controller.
  7. _repository = new Repository("localfolderpath");
     var network = _repository.Network.Remotes.First();
     var refSpecs = new List<string>() { network.FetchRefSpecs.First().Specification };
     var fetchOptions = new FetchOptions { TagFetchMode = TagFetchMode.All };
     fetchOptions.CredentialsProvider = (_url, _user, _cred) => new DefaultCredentials();
     fetchOptions.CredentialsProvider += (_url, _user, _cred) => _userNamePasswordCredentials;
    
     Commands.Pull(_repository, new Signature(Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), DateTime.Now), new PullOptions()
     {
         FetchOptions = fetchOptions,
         MergeOptions = new MergeOptions()
         {
             MergeFileFavor = MergeFileFavor.Theirs,
             CommitOnSuccess = true
         }
     });
    
     foreach (Remote remote in _repository.Network.Remotes)
     {
         Commands.Fetch(_repository, remote.Name, new string[0], fetchOptions, null);
         _repository.Network.Fetch(remote.Name, remote.FetchRefSpecs.Select(r => r.Specification), fetchOptions);
     }
    
Expected behavior
  1. Deleted tags shouldn't come up when using _repository.Tags
Actual behavior
  1. Deleted tags come up in _repository.Tags
Version of LibGit2Sharp (release number or SHA1)

Libgit2Sharp 0.26.2

Operating system(s) tested; .NET runtime tested

.Net Core 3.5, Microsoft Visual Studio Professional 2019 Version 16.9.0, .Net Framework 4.7.03190, Microsoft windows 10 pro.

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

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

はじめの一歩

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

調査の方向性

示されている Pull と Fetch の呼び出しを使って LibGit2Sharp 0.26.2 で問題を再現し、リモートタグが削除された後に _repository.Tags がどのように設定されるかを調べます。取得された refs と期待されるタグ一覧を比較します。削除されたリモートタグが _repository.Tags に表示されなくなれば完了です。

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

評価

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

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

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