libgit2 / libgit2/libgit2sharp
Indexing a tree by path yields different result with trailing slash
Ninguém assumiu esta issue ainda.
- Linguagem predominante
- C#
- Estrelas
- 3.5k
- Forks
- 925
- Métricas de merge de PRs
- Nenhum PR com merge em 30d
Descrição
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
Guia de contribuição
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Direção de pesquisa
Reproduza a discrepância usando o exemplo fornecido de TreeDefinition e do indexador de árvores, comparando os caminhos retornados para "some/deeply/" e "some/deeply". Rastreie a construção do caminho de TreeEntry para subárvores indexadas e adicione um teste de regressão cobrindo ambas as entradas. Está concluído quando a indexação com uma barra final retorna o mesmo caminho não duplicado que o caminho equivalente sem a barra.
Escrita pelo modelo de indexação a partir do texto da issue.
Avaliação
- Stack de tecnologia
- csharp, git
- Domínio
- devtools
- Tipo de issue
- Bug
- Dificuldade
- 3/5
- Tempo estimado
- 1-2 dias
- Status de atividade
- Pouca atividade
- Clareza
- Razoavelmente clara
- Facilidade para iniciantes
- 68/100