libgit2 / libgit2/libgit2sharp
Out of memory error when identifying changed files. The repository has over 4 lakh files.
Dieses Issue hat noch niemand übernommen.
- Vorherrschende Sprache
- C#
- Sterne
- 3.5k
- Forks
- 925
- PR-Merge-Kennzahlen
- Keine gemergten PRs in 30 T.
Beschreibung
Out of memory error while trying to find the changes in a repo.
Reproduction steps
Finding out untracked/modified files in the repo with over 4 lakh files is causing out of memory error.
Expected behavior
It should be optimized for memory use while trying to find out changes.
Actual behavior
out of memory error in the code below.
Class: Index
Method : AllIndexEntries( )
It is enumerating all entries and tries to fill the list, instead it could have been implemented as callback to reduce the memory pressure.
Version of LibGit2Sharp (release number or SHA1)
0.26.2
Operating system(s) tested; .NET runtime tested
Windows 10, .NET 4.8
Beitragsleitfaden
Erste Schritte
- Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
- Forke das Repository und arbeite in einem Branch.
- Öffne einen Pull Request, der die Issue-Nummer nennt.
Rechercherichtung
Beginnen Sie bei der im Bericht genannten Methode Index.AllIndexEntries und verfolgen Sie den Code, der nicht nachverfolgte und geänderte Dateien aufzählt. Reproduzieren Sie das Verhalten mit einem Repository, das mehr als 400,000 Dateien enthält, und überprüfen Sie anschließend, dass die Änderungserkennung den Speicher nicht mehr erschöpft und dabei die gemeldeten Dateiergebnisse beibehält.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- csharp, git
- Bereich
- tooling
- Issue-Typ
- Bug
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Aktivitätsstatus
- Veraltet
- Klarheit
- Größtenteils klar
- Anfängerfreundlichkeit
- 42/100