sublimehq / sublime_merge

Issue tracker for Sublime Merge
https://www.sublimemerge.com
271 stars 14 forks source link

Problems such as crashes caused by operating a large number of files #1757

Open chenshaolang opened 1 year ago

chenshaolang commented 1 year ago

Version info

Description

I have a large project consisting of four C# projects, all imported as submodules. I need to package the compiled results of these four projects. Therefore, I use Git for version control. Every time I compile and replace these four projects, it generates a significant number of modifications (around 300 changes per project). Sublime Merge takes a considerable amount of time to load these modifications after each change, and it becomes unresponsive when I try to switch after committing changes to one of the submodules. Additionally, when I attempt to execute 'git reset' after committing, it seems to have trouble functioning properly.

Steps to reproduce

Steps to reproduce the behavior:

  1. Open the project of the aforementioned type (ensuring that each submodule has a significant number of changes).
  2. Switch to one of the submodules.
  3. Commit a substantial number of changes in the submodule (approximately 300).
  4. Switch back to the main module.

Expected behavior

  1. I would like to have a progress bar indicating the estimated loading time when there are a significant number of modifications to be loaded.
  2. When there are a substantial number of changes, I expect the program to remain stable and able to perform other operations without crashing or becoming unresponsive.

Debug Information === App Version Information === Build: 2083

=== Git Version Information === Using Git: D:\application\Sublime Merge\Git\cmd\git.exe (bundled) git version 2.39.1.windows.1 PATH: C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\WINDOWS\System32\OpenSSH\;D:\application\nvm;D:\application\nodejs;C:\Program Files\Docker\Docker\resources\bin;C:\ProgramData\DockerDesktop\version-bin;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\WINDOWS\System32\OpenSSH\;C:\Program Files\dotnet\;D:\application\ffmpeg;D:\application\gitui;D:\application\minio\bin;D:\application\platform-tools;D:\application\git\Git\cmd;C:\Users\50482\AppData\Local\Programs\Python\Python310\Scripts\;C:\Users\50482\AppData\Local\Programs\Python\Python310\;C:\Users\50482\AppData\Local\Microsoft\WindowsApps;D:\application\Microsoft VS Code\bin;C:\Users\50482\AppData\Roaming\npm;D:\application\nvm;D:\application\nodejs;D:\application\Fiddler;C:\Users\50482\AppData\Local\Microsoft\WindowsApps;C:\Users\50482.dotnet\tools;C:\Users\50482\AppData\Local\Programs\oh-my-posh\bin;C:\Users\50482\AppData\Local\Microsoft\WinGet\Links;

=== Browse Page Information === HEAD: 2b2f8ac786c34fb20cd974f52e87ce6028822e43 Is in merge: 0 Is in cherry_pick: 0 Is in rebase: 0 Is in revert: 0

=== Git Status Information === M MPGInputNode M MPGOutputNode M MPGServices M "UMU Client.aip" m UMUClient

=== Our Status Information ===

=== Git Config Information === branch.master.merge=refs/heads/master branch.master.remote=origin color.interactive=true color.ui=auto core.autocrlf=true core.bare=false core.editor="D:\application\Microsoft VS Code\bin\code" --wait core.filemode=false core.ignorecase=true core.logallrefupdates=true core.repositoryformatversion=0 core.symlinks=false credential.helper=store credential.https://codeup.aliyun.com.provider=generic credential.https://dev.azure.com.usehttppath=true diff.astextplain.textconv=astextplain difftool.sourcetree.cmd='D:/application/Microsoft VS Code/Code.exe' --diff --wait$LOCAL$REMOTE filter.lfs.clean=git-lfs clean -- %f filter.lfs.process=git-lfs filter-process filter.lfs.required=true filter.lfs.smudge=git-lfs smudge -- %f help.format=html include.path=C:/Program Files/Git/etc/gitconfig lfs.repositoryformatversion=0 mergetool.sourcetree.cmd='D:/application/Microsoft VS Code/Code.exe' -n --wait $MERGED mergetool.sourcetree.trustexitcode=true pack.packsizelimit=2g rebase.autosquash=true remote.origin.fetch=+refs/heads/:refs/remotes/origin/ submodule.MPGInputNode.active=true submodule.MPGOutputNode.active=true submodule.MPGServices.active=true submodule.UMUClient.active=true

=== Our Config Information === Git Config Path Information Using config path: /C/ProgramData/Git/config Using config path: /D/application/Sublime Merge/Git/etc/gitconfig Using config path: /C/Users/50482/.config/git/config Using config path: /C/Users/50482/.gitconfig Using config path: /D/work/dualmirror/Templates/UMUSingleClientInstaller/.git/config

Our config output is identical to the Git config output

=== Git Attributes Information === git check_attr --all output

=== Our Modified Files Newline Normalisation and EOL Information ===

=== Our Modified Files Flag Information === Ignoring symlinks: 1

This section may be omitted/removed.

Screenshots

I apologize, but due to the nature of this involving packaging and releasing a product, it is inconvenient for me to attempt again and provide screenshots. The images below primarily depict the structure of the project and the modifications in each submodule.

image

image