Hacktoberfest 2026: as issues que os mantenedores marcaram para outubro, abertas e boas para iniciantes. Ver issues do Hacktoberfest

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

Aberta
#7,255 0 comentários 0 reações 0 responsáveis Ver no GitHub

Ninguém assumiu esta issue ainda.

Avaliação

Dificuldade
4/5
Tempo estimado
3-5 dias
Facilidade para iniciantes
52/100
Tipo de issue
Bug
Clareza
Razoavelmente clara
Status de atividade
Pouca atividade
Stack de tecnologia
c, git
Domínio
devtools

Direção de pesquisa

Comece reproduzindo a configuração com ~/.gitconfig, ~/.included.cfg e um repositório acessado por meio de ~/link/proj. Compare o resultado do predicado IncludeIf gitdir: do libgit2 com o resultado do git para o caminho com link simbólico. A tarefa estará concluída quando o libgit2 aplicar a identidade incluída sempre que o git corresponder ao mesmo predicado.

Escrita pelo modelo de indexação a partir do texto da issue.

Descrição

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.

Linguagem predominante
C
Estrelas
10.6k
Forks
2.7k
Métricas de merge de PRs
Nenhum PR com merge em 30d

Guia de contribuição

Abrir o guia de contribuição

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Mais de libgit2/libgit2

Todas as issues de libgit2/libgit2

Issues semelhantes

Mais issues de C

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.