Hacktoberfest 2026: die Issues, die Maintainer für den Oktober markiert haben – offen und einsteigerfreundlich. Hacktoberfest-Issues durchsuchen

Indexing a tree by path yields different result with trailing slash

Offen
#2,189 0 Kommentare 1 Reaktion 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

Bewertung

Schwierigkeit
3/5
Geschätzter Aufwand
1-2 Tage
Anfängerfreundlichkeit
68/100
Issue-Typ
Bug
Klarheit
Größtenteils klar
Aktivitätsstatus
Ruhig
Tech-Stack
csharp, git
Bereich
devtools

Rechercherichtung

Reproduziere die Abweichung anhand des bereitgestellten TreeDefinition- und Tree-Indexer-Beispiels und vergleiche die für "some/deeply/" und "some/deeply" zurückgegebenen Pfade. Verfolge die Konstruktion des TreeEntry-Pfads für indizierte Teilbäume und füge einen Regressionstest hinzu, der beide Eingaben abdeckt. Erledigt ist die Aufgabe, wenn die Indizierung mit abschließendem Schrägstrich denselben nicht duplizierten Pfad wie der entsprechende Pfad ohne Schrägstrich zurückgibt.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Beschreibung

When a slash is included when indexing into a tree to a subtree, the resulting TreeEntry has a path with a duplicated last path part.

using System.Text;
using LibGit2Sharp;

var path = Path.Combine(Path.GetTempPath(), Guid.NewGuid().ToString());

using var repo = new Repository(Repository.Init(path, isBare: true));

var bytes = Encoding.UTF8.GetBytes("Hello, World!");

var blob = repo.ObjectDatabase.CreateBlob(new MemoryStream(bytes));

var td = new TreeDefinition();
td.Add("some/deeply/nested/file", blob, Mode.NonExecutableFile);

var tree = repo.ObjectDatabase.CreateTree(td);

var withSlash = tree["some/deeply/"].Path;
var withoutSlash = tree["some/deeply"].Path;

Console.WriteLine(withSlash);       // some/deeply/deeply
Console.WriteLine(withoutSlash);    // some/deeply

I was seeing this across Linux and Windows, on versions 0.31 and 0.32 and .NET 10 and Framework 4.8

Vorherrschende Sprache
C#
Sterne
3.5k
Forks
925
PR-Merge-Kennzahlen
Keine gemergten PRs in 30 T.

Beitragsleitfaden

Beitragsleitfaden öffnen

Erste Schritte

  1. Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
  3. Forken Sie das Repository und arbeiten Sie in einem Branch.
  4. Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.

Mehr aus libgit2/libgit2sharp

Alle Issues in libgit2/libgit2sharp

Ähnliche Issues

Weitere Issues zu C#

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.