libgit2 / libgit2/libgit2sharp

Out of memory error when identifying changed files. The repository has over 4 lakh files.

Offen
#1,786 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

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

Beitragsleitfaden öffnen

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Ö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

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.