libgit2 / libgit2/libgit2sharp

CommitLog order does not reflect order of commits.

Abierto
#2,100 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Lenguaje dominante
C#
Estrellas
3.5k
Forks
925
Métricas de merge de PR
Sin PR fusionados en 30 d

Descripción

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

CommitsLog incorrect order

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

Guía de contribución

Abrir la guía de contribución

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Línea de trabajo

Empieza reproduciendo el problema de ordenación con el ejemplo mostrado de LibGitRepositoryBuilder.WithManyCommits e inspecciona cómo se enumera el registro de commits del repositorio. Como en el issue no se menciona ningún archivo de código fuente ni ninguna prueba, localiza primero la implementación de CommitLog y las pruebas de registro existentes. La tarea estará terminada cuando los commits creados secuencialmente aparezcan, como se espera, con el más reciente primero.

Escrito por el modelo de indexación a partir del texto del issue.

Evaluación

Stack tecnológico
csharp, git
Área
devtools
Tipo de issue
Error
Dificultad
3/5
Tiempo estimado
1-2 días
Estado de actividad
Estancado
Claridad
Bastante claro
Aptitud para principiantes
35/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.