libgit2 / libgit2/libgit2sharp
Diff compare with DiffTargets.WorkingDirectory is terribly slow
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
Reproduction steps
Compare commit to the working tree directory on a relatively big repository
repository.Diff.Compare<TreeChanges>(
repository.Head.Tip.Tree,
DiffTargets.WorkingDirectory)
which takes a long time or never completes. Comparing the working trees of two commits works instantly
var branchDiffResult = repository.Diff.Compare<TreeChanges>(
targetCommit.Tree,
repository.Head.Tip.Tree,
compareOptions);
Additionally, doing repository.RetrieveStatus() is also slow, but not that slow.
Expected behavior
The speed of the two matches.
Actual behavior
Comparing to working directory is terribly slow.
Version of LibGit2Sharp (release number or SHA1)
0.27.0.0
Operating system(s) tested; .NET runtime tested
4.72, windows 11
Guide de contribution
Ouvrir le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Piste de recherche
Reproduire le ralentissement avec repository.Diff.Compare(repository.Head.Tip.Tree, DiffTargets.WorkingDirectory) sur un dépôt relativement volumineux, puis le comparer avec la surcharge commit-to-commit et repository.RetrieveStatus(). Suivre le chemin de comparaison du répertoire de travail et mesurer où le temps est dépensé. Le travail est considéré comme terminé lorsque la comparaison du répertoire de travail s’achève avec des performances comparables à celles de la comparaison commit-to-commit.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- csharp, git
- Domaine
- backend-api-design, performance
- Type d'issue
- Bug
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Activité
- À l'abandon
- Clarté
- Plutôt claire
- Accessibilité débutants
- 35/100