libgit2 / libgit2sharp

Git + .NET = ❤
http://libgit2.github.com
MIT License
3.17k stars 886 forks source link

CommitLog order does not reflect order of commits. #2100

Open TimScholtens opened 4 months ago

TimScholtens commented 4 months ago

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

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