libgit2 / libgit2/libgit2sharp

CommitLog order does not reflect order of commits.

Ouverte
#2,100 0 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

Langage dominant
C#
Étoiles
3.5k
Forks
925
Métriques de merge des PR
Aucune PR mergée en 30 j

Description

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

Guide de contribution

Ouvrir le guide de contribution

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Piste de recherche

Commencez par reproduire le problème d’ordre avec l’exemple montré de LibGitRepositoryBuilder.WithManyCommits et examinez comment le journal des commits du dépôt est énuméré. Aucun fichier source ni test n’étant mentionné dans l’issue, localisez d’abord l’implémentation de CommitLog et les tests de journalisation existants. La tâche est terminée lorsque les commits créés séquentiellement apparaissent comme prévu, du plus récent au plus ancien.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
csharp, git
Domaine
devtools
Type d'issue
Bug
Difficulté
3/5
Temps estimé
1-2 jours
Activité
À l'abandon
Clarté
Plutôt claire
Accessibilité débutants
35/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.