libgit2 / libgit2/libgit2sharp

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

未關閉
#1,786 0 則留言 0 個 reaction 已指派 0 人 在 GitHub 檢視

還沒有人認領這個 Issue。

主要語言
C#
星號
3.5k
分支
925
PR 合併指標
30 天內沒有已合併 PR

描述

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

貢獻指南

開啟貢獻指南

從這裡開始

  1. 先讀完整個 Issue,再讀專案的貢獻指南。
  2. 在 Issue 下留言說明你要接手 —— 這能避免兩個人做同樣的事。
  3. Fork 儲存庫,在一個分支上完成修改。
  4. 送出 Pull Request,並在描述裡引用這個 Issue 編號。

研究方向

從報告中提到的 Index.AllIndexEntries 方法開始,追蹤列舉未追蹤和已修改檔案的程式碼。使用包含超過 400,000 個檔案的儲存庫重現此行為,然後驗證變更偵測不再耗盡記憶體,同時保留所回報的檔案結果。

由索引模型根據 Issue 內容生成。

評估

技術堆疊
csharp, git
領域
tooling
Issue 類型
缺陷
難度
4/5
預估耗時
3-5 天
活躍度
停滯
描述清晰度
基本清楚
新手友好度
42/100

把新 issue 寄到你的電子郵件信箱

精選適合新手參與的 GitHub issue 摘要。