MergeOptions: TargetLimit (merge.renameLimit) is being ignored during merge operation
Ninguém assumiu esta issue ainda.
Avaliação
- Dificuldade
- 4/5
- Tempo estimado
- 3-5 dias
- Facilidade para iniciantes
- 38/100
Direção de pesquisa
Comece rastreando o valor de MergeOptions.TargetLimit desde repo.Merge durante a operação de merge e comparando-o com a forma como o comando git merge lê merge.renameLimit de .gitconfig. Reproduza o cenário Foo.cs-to-Bar.cs com o layout de branches fornecido e verifique se o merge é concluído sem conflitos quando TargetLimit for 7000.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
Reproduction steps
The sourceBranch and targetBranch has a commonAncestorCommit with an existing file Foo.cs. A lot of (let's say: 3000) other files exist too.
The sourceBranch contains one single extra commit on top of commonAncestorCommit with a modification inside a file Foo.cs.
The targetBranch (current branch) contains one single extra commit on top of commonAncestorCommit in which the file Foo.cs has been renamed to Bar.cs, and a lot of (let's say: 2000) other files have also been renamed.
The following merge from sourceBranch to targetBranch ignores TargetLimit (merge.renameLimit), and causes an unnecessary conflict:
using (var repo = new Repository(...))
{
Commands.Checkout(repo, targetBranch);
var mergeOptions = new MergeOptions { TargetLimit = 7000 };
repo.Merge(sourceBranch, mergerSignature, mergeOptions)
}
Expected behavior
A successful merge without conflict.
Actual behavior
We are staying in the ongoing merge operation, and the git status reports conflict for the file Foo.cs stating that it has been "deleted by us".
Note that the plain git merge command can merge this without conflicts if the merge.renameLimit setting is set to 7000 in the .gitconfig file.
Version of LibGit2Sharp (release number or SHA1)
LibGit2Sharp 0.26.2
LibGit2Sharp 0.27.0-preview-0182
Operating system(s) tested; .NET runtime tested
Windows 10 Enterprise N
.NET 6.0.8
- Linguagem predominante
- C#
- Estrelas
- 3.5k
- Forks
- 925
- Métricas de merge de PRs
- Nenhum PR com merge em 30d
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.
Mais de libgit2/libgit2sharp
-
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 52/100
libgit2/libgit2sharp#2193 · 2 comentários ·
-
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 38/100
libgit2/libgit2sharp#2192 · 1 comentário ·
-
Website is down Aberta
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 20/100
libgit2/libgit2sharp#2191 · 2 reações ·
-
Dificuldade 3/5 1-2 dias Facilidade para iniciantes 68/100
libgit2/libgit2sharp#2189 · 1 reação ·
-
Dificuldade 3/5 1-2 dias Facilidade para iniciantes 35/100
libgit2/libgit2sharp#2187 · 2 comentários ·
Todas as issues de libgit2/libgit2sharp
Issues semelhantes
-
Status: Waiting triage Type: Bug
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 84/100
nanoframework/Home#1857 ·
-
kind/bug kind/regression
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 78/100
unoplatform/uno.toolkit.ui#1646 ·
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 78/100
nightscout/nocturne#1379 ·
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 86/100
elastic/esql-dotnet#47 ·
-
port: add go-steam fork Aberta
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 85/100