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

IncludeIf gitdir: mismatches git when the repo is reached via a symlinked parent

Offen
#7,255 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

Bewertung

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

Rechercherichtung

Beginne damit, das Setup mit ~/.gitconfig, ~/.included.cfg und einem Repository nachzustellen, das über ~/link/proj erreicht wird. Vergleiche das Ergebnis von libgit2s IncludeIf-Prädikat gitdir: mit dem Ergebnis von git für den symbolisch verknüpften Pfad. Als erledigt gilt die Aufgabe, wenn libgit2 die enthaltene Identität immer dann anwendet, wenn git auf dasselbe Prädikat zutrifft.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Beschreibung

Issue

IncludeIf "gitdir: ~/..." predicates evaluate differently between libgit2 vs git. Git matches symlinked paths against ~ patterns which libgit2 fails to match.

Example

Setup

Repo stored in ~/link/proj
The dir ~/link/ is a link to /some/other/path

~/.included.cfg

[user]
    name = Included Name
    email = included@example.com

~/.gitconfig

[IncludeIf "gitdir:~/link/"]
    path = ~/.included.cfg

Reach the repo through the symlink

cd ~/link/proj

git: predicate matches, identity is set

git config user.name # -> "Included Name"

libgit2: predicate misses, identity is empty

"KeyError or empty"

Expected

libgit2 evaluates IncludeIf gitdir: predicates against the same path representation git uses, so any predicate that matches under git also matches under libgit2.

Vorherrschende Sprache
C
Sterne
10.6k
Forks
2.7k
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/libgit2

Alle Issues in libgit2/libgit2

Ähnliche Issues

Weitere Issues zu C

Neue Issues direkt in Ihr Postfach

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