libgit2 / libgit2/libgit2sharp

Remotes are sometimes not returned for worktree

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

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

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

説明

Reproduction steps
  1. Create repository with remote and commit.
  2. Create branch and create a worktree from that branch.
  3. Copy the path to worktree and run the following code:
var worktreePath = "Here is your worktree path";
var repositoryPath = Repository.Discover(worktreePath);
var repo = new Repository(repositoryPath);

var before = repo.Network.Remotes.ToArray();
_ = repo.Head.RemoteName;
var after = repo.Network.Remotes.ToArray();
Expected behavior

Both before and after variable contain remote.

Actual behavior

The before variable contains remote, after is empty.

Version of LibGit2Sharp (release number or SHA1)

Latest master: 7f59d22c4fdb7b3d14511aca567e64eefaa43ab2

Operating system(s) tested; .NET runtime tested

Windows, .NET Framework 462 and .NET Core 2.1. I believe it doesn't matter.

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

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

はじめの一歩

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

調査の方向性

まず、報告された C# の再現を最新の master で実行し、リンクされた worktree を使って Repository.Discover、repo.Network.Remotes、repo.Head.RemoteName に焦点を当てます。Head.RemoteName へのアクセスによって remotes の結果が変わる理由を追跡します。実行前と実行後の両方にリポジトリの remote が含まれていれば完了です。

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

評価

技術スタック
csharp, git
領域
tooling
issue の種類
バグ
難易度
3/5
見積もり時間
1〜2日
活発さ
停滞
明瞭さ
明確に書かれている
初心者へのやさしさ
45/100

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

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