libgit2 / libgit2/libgit2sharp
CommitLog order does not reflect order of commits.
Nessuno ha ancora preso questa issue.
- Lingua principale
- C#
- Stelle
- 3.5k
- Fork
- 925
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Descrizione
Hi!
I am currently working on an E2E test which involves creating many commits, I am running into some issues however.
The repository's commit log order is different compared to the order of commits I have made.
Reproduction steps
public LibGitRepositoryBuilder WithManyCommits(int numberOfCommits, string commitMessage)
{
for (int i = 0; i < numberOfCommits; i++)
{
// Create & stage file.
var filePath = Path.Combine(_repoPath, $"{Guid.NewGuid()}.txt");
File.Create(filePath).Dispose();
var relativeFilePathToRoot = Path.GetRelativePath(_repository.Info.WorkingDirectory, filePath);
Commands.Stage(_repository, relativeFilePathToRoot);
_repository.Commit($"{commitMessage}-{i}", new Signature("bot", "bot@noreply.com", DateTimeOffset.UtcNow), new Signature("bot", "bot@noreply.com", DateTimeOffset.UtcNow));
}
return this;
}
var repo = new LibGitRepositoryBuilder(path)
.WithManyCommits(100, "Hello world")
.Build();
Expected behavior
- "Hello world-99"
- "Hello world-98"
- "Hello world-97"
- ....
Actual behavior
Version of LibGit2Sharp (release number or SHA1)
0.30.0
Operating system(s) tested; .NET runtime tested
OS
Edition Windows 11 Pro for Workstations
Version 23H2
Installed on 22/02/2024
OS build 22631.3593
Experience Windows Feature Experience Pack 1000.22700.1003.0
.NET
.NET 8.0
Guida per i contributori
Apri la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Direzione di ricerca
Inizia riproducendo il problema di ordinamento con l’esempio mostrato di LibGitRepositoryBuilder.WithManyCommits e verifica come viene enumerato il log dei commit del repository. Poiché nell’issue non sono indicati file sorgente o test, individua prima l’implementazione di CommitLog e i test del log esistenti. Il lavoro è completato quando i commit creati in sequenza vengono mostrati, come previsto, dal più recente al meno recente.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- csharp, git
- Ambito
- devtools
- Tipo di issue
- Bug
- Difficoltà
- 3/5
- Tempo stimato
- 1-2 giorni
- Stato di attività
- Ferma
- Chiarezza
- Abbastanza chiara
- Idoneità per principianti
- 35/100