Closed reyesm24 closed 1 year ago
Does SM fix itself (or does it improve things) when you choose the menu item Tools > Refresh
?
Do you have similar issues with any other repository?
Also, is the repository you're having issues with publicly accessible (to reproduce)?
No, Tools > Refresh does not appear to change the behavior. I am having issues with two separate repositories. Unfortunately, neither is publicly accessible. I recently noticed that there is a hooks folder that keeps getting created that includes post-checkout, post-commit, post-merge, and pre-push files. I am not sure what tool is creating these (if it is SM or something else) but hadn't noticed these been present until this issue started appearing.
Hi @reyesm24,
Thanks for reaching out - I'll do my best to have this issue resolved for you as quickly as possible.
Firstly, could you try starting Sublime Merge in safe mode and see if this resolves the issue? You can start Sublime Merge in safe mode by holding Shift + Alt
as you start Sublime Merge. To confirm you have indeed started into safe mode, a dialog should appear confirming this.
Secondly, would you mind sharing your Sublime Merge debug information? (if possible, it may not work if the application is completely unresponsive)
This can be done by opening the repository in Sublime Merge, and navigating to Help > Debug Information
.
Before sharing this, take a moment to remove any information you feel is sensitive (i.e. email addresses, file paths, remote repository paths etc).
Thanks, - Dylan
Is any fix available? I see this in Ubuntu 20.04
Hi @debasis123,
Thanks for reaching out - I'll be looking into this. Would you mind also sharing the above information too?
Thanks, - Dylan
Hi @dpjohnst sorry for my slow response. So we switched from bitbucket to gitlab and I did not clone the repo completely new but just changed the credentials. Looked like, it did not work. After I cloned a new repo from gitlab instead, the problem disappeared.
Hi, I also observed this issue and it is blocking. I think it is linked to git LFS (or maybe the hooks that is installs). My repos are stuck on "Loading changes..." and the application becomes unresponsive and I can't even close any tags or the application itself without killing it through the task manager. This issue was not there in previous versions.
I have the same issue which can either manifest itself as described here, or as in #1212.
In case a file tracked by git LFS changes while Sublime Merge is open, I get the behaviour seen in #1212.
If I first change a file which is tracked by git LFS and then (re)open Sublime Merge I get the infinite "Loading changes..." status.
I need to end the sublime_merge.exe
process tree (which kills any spawned git-lfs.exe
processes as well) then commit the changes in git bash to be able to reopen Sublime Merge.
The LFS file I changed is a 3.5 MB CSV.
While Sublime Merge is hanging I can see these two processes running without using any CPU (until I kill the SM process tree):
git.exe clean -- output/large_csv.csv
git-lfs clean -- output/large_csv.csv
My gitignore_global
file looks like this:
#ignore thumbnails created by windows
Thumbs.db
venv/
# IDE folders
.idea/*
.spyproject/*
.vscode/*
# Cache
__pycache__/*
My gitattributes
looks like this:
output/** filter=lfs diff=lfs merge=lfs -text
sourcedata/** filter=lfs diff=lfs merge=lfs -text
git status -vvv
output from git bash:Hope this helps narrowing down the issue, let me know if I can provide more information.
To add to my previous comment, it appears that the git.exe clean -- output/large_csv.csv
command is hung, halting Sublime Merge.
If I run the git clean
command separately in git bash, I get:
$ git clean -- input/large_csv.csv
fatal: clean.requireForce defaults to true and neither -i, -n, nor -f given; refusing to clean
The git clean
command spawned by Sublime Merge appears to miss an option which it needs.
This stackoverflow post shows that one can either add the -i
, -n
or -f
option or one can adjust the settings in the repository.
As I cannot control what options SM passes on to git
, I tried setting clean.requireForce
to false
with:
git config --local clean.requireForce false
Unfortunately that did not resolve this issue, but perhaps this helps finding the issue?
After trying out different builds from the dev download page I found that (on Windows) build 2046 is the last build that does not hang on a git LFS repository. In my tests I always set the SM preferences to use system git to rule out any issues with the bundled git version.
From build 2048 onwards every version has the issue as described above.
The changelog of build 2048 states (bolding mine):
BUILD 2048 11 March 2021 Allow command palette navigation with Tab / Shift + Tab Fixed newlines appearing in the commit message history Fixed blame tooltips not updating in certain circumstances Fixed crash when staging files with certain file encodings Windows and Mac: updated bundled Git to 2.30.2 (addresses CVE-2021-21300) Windows: fixed clean and smudge filters hanging on certain files Linux: improved application menu theming
Perhaps the clean and smudge filter fix needs to be revised?
For now I've downgraded to build 2046 as a workaround.
Edit: apparently build 2047 also works, I guess this is a release of the 2046 dev build. Not sure what the difference is between these two builds.
I have this problem, on Windows 10, build 2071
How to reproduce:
poetry.lock
file.gitattributes
contains poetry.lock filter=my_filter
[filter "my_filter"]
smudge = sed 's|https://pypi.org|https://internal.repository.local|g'
clean = sed 's|https://internal.repository.local|https://pypi.org|g'
Seems Sublime Merge gets stuck with the smudge and clean commands. sed
(from the git core utils folder) is in the PATH. Yet sublime merge has trouble running that command apparently. Seeing the comment above about lfs, this looks like something more generic with smudge+clean.
I'm also having this issue. It looks like issue is related to Sublime Merge itself and not the system git binaries.
Unfortunately, I had to switch to GitKraken until this issue gets resolved.
Windows 10 Pro, build 19044.
I also use a security hardened Windows.
Reproduction on latest flathub build here. Issue does indeed seem related to changes to filters as it started showing up in this repository shortly after adding git-lfs configuration.
Update: From where I'm sitting it looks like the core issue is a .gitattributes construct like this:
* filter=lfs diff=lfs merge=lfs
*.[tT][xX][tT] -filter -diff -merge text=auto
Presumably Sublime Merge is not happy about the reset-to-default for filter, diff, and merge properties?
Same problem here as well.
I also see correlation with usage of LFS, but not sure exactly what is causing the problem.
I just ran into the same issue.
I had an un-committed file (a png) that uses LFS.
I was able to work around it by manually doing a git add from a console window.
Once the file was in the commit list, SM stopped hanging.
I'm seeing the very same issue in my repository. The workaround mentioned by @donaldmcn works but is more than annoying.
Another guess towards a solution: Is SM simply waiting for some expected git clean
output that won't be produced? Just as for @ba-tno, running the command git.exe clean -- changed-lfs-file
manually in my repo produces the output
fatal: clean.requireForce defaults to true and neither -i, -n, nor -f given; refusing to clean
without git getting stuck. After all, SM doesn't really crash, but some worker thread (the one spawning the git process?) seems to be stuck so that no more updates are delivered to the UI and SM won't exit cleanly since it waits for the blocked thread.
@dpjohnst Please have another look at this issue. I would love to buy SM since I'm very happy with it, but this issue is a major blocker. Thanks!!!
Looking a little closer, SM uses the command git-lfs
clean -- changed-lfs-file
. Manually running this command it produces the error
Cannot read from STDIN. This command should be run by the Git 'clean' filter
I also attached to the hanging git-lfs process and it sits in WaitForSingleObject()
, I guess waiting for input from STDIN. Maybe the fix is to not use git-lfs
but simply git
when issuing the clean command.
If SM uses something like libgit2
, maybe there is an incompatibility to git-lfs on my system? Here are the versions I use:
$>git lfs version
git-lfs/2.13.2 (GitHub; windows amd64; go 1.14.13; git fc664697)
$>git version
git version 2.30.0.windows.2
Thanks again for looking into this issue!
Hi all,
Thanks for the extensive information you've provided so far and for your patience.
We're still actively investigating this issue but so far have been unable to reproduce the issue on our end. If this is occurring on a public repository for anyone, would you mind sharing the link to the repo?
Additionally:
.gitattributes
file from the repository you're seeing this issue on that would be appreciated too.Thanks, - Dylan
Hi all,
Thanks for the extensive information you've provided so far and for your patience.
We're still actively investigating this issue but so far have been unable to reproduce the issue on our end. If this is occurring on a public repository for anyone, would you mind sharing the link to the repo?
Additionally:
* Could anyone running into this issue confirm which version of Sublime Merge you are on. * If you could share the `.gitattributes` file from the repository you're seeing this issue on that would be appreciated too.
Thanks, - Dylan
Build 2071.
# By default, everything is in LFS and does not get line endings normalized
* filter=lfs diff=lfs merge=lfs
[attr]editedText filter=text diff=text merge=text text=auto
[attr]uneditedText filter=text diff=text merge=text
[attr]lockableUnmergedText filter=text diff=text merge=binary lockable
# Dot files presumed git config files and similar - in either case text
.* editedText
# Actual text files which should get line endings nornalized
*.[tT][xX][tT] editedText
*.[mM][dD] editedText
*.[cC][sS] editedText
*.[sS][hH][aA][dD][eE][rR] editedText
*.[hH][lL][sS][lL] editedText
*.[cC][gG][iI][nN][cC] editedText
*.[xX][mM][lL] editedText
*.[yY][mM][lL] editedText
*.[jJ][sS][oO][nN] editedText
*.[sS][hH] editedText
*.[dD][oO][tT][sS][eE][tT][tT][iI][nN][gG][sS] editedText
# Text formatted Unity assets which should not have line endings messed with
*.[mM][eE][tT][aA] uneditedText
*.[pP][rR][eE][fF][aA][bB] uneditedText
*.[aA][sS][sS][eE][tT] uneditedText
*.[cC][oO][nN][tT][rR][oO][lL][lL][eE][rR] uneditedText
*.[aA][sS][mM][dD][eE][fF] uneditedText
*.[mM][aA][tT] uneditedText
*.[pP][hH][yY][sS][iI][cC][mM][aA][tT][eE][rR][iI][aA][lL] uneditedText
ProjectSettings/*.[cC][oO][nN][fF][iI][gG] uneditedText
# Scenes are stored as text, will not be merged, and can be locked
*.[uU][nN][iI][tT][yY] lockableUnmergedText
@dpjohnst I prepared a test repo: https://github.com/haikl/sublime-merge-1157. It contains steps to reproduce.
I can reproduce the issue every time.
Hi @dpjohnst, do you have any news on this issue?
Hi all,
Thanks for the extensive information you've provided so far and for your patience.
We're still actively investigating this issue but so far have been unable to reproduce the issue on our end. If this is occurring on a public repository for anyone, would you mind sharing the link to the repo?
Additionally:
- Could anyone running into this issue confirm which version of Sublime Merge you are on.
- If you could share the
.gitattributes
file from the repository you're seeing this issue on that would be appreciated too.Thanks, - Dylan
Hi,what is the new progress on this issue, because I have been encountering the same problem...
I'm having a similar issue with an LFS repo on Windows 10, but in my case the application freezes entirely.
I can't even resize or move the application window, and have to kill the process from the task manager. Strangely enough, I can still scroll through the tab with the file diff changes.
Reverting to 2047 fixes the issue though.
Hi all,
We're still actively investigating this issue but unfortunately have been unable to reproduce the issue despite extensive testing on multiple Windows machines.
@EntroPiGames
.gitignore
file in the repository? If so, could you share the contents of it?.gitattributes
file for the repository in question?Additionally if anyone can consistently reproduce this issue and would be willing to work with one of the engineers to diagnose this issue on your machine, could you reach out to me (djohnston
) via the Sublime discord channel at: https://discord.gg/CVNAhtDE
Many thanks, - Dylan from Sublime HQ
I just installed a Windows 10 Hyper-V virtual machine, installed the following setup:
The I followed the steps from both Option 1 and Option 2.
I could not reproduce this issue! Both options provide the expected result, although it takes a while (almost half a minute) before the change is registered correctly in SM.
I then went into my local machine that has the following setup:
Again I tried both options, but here I could reproduce the issue.
I have attached my redacted debug info below per reproduction option (as numbered in haikl's repository)
Option 1 - create new LFS file
Option 2 - edit existing LFS file
Hi @ba-tno,
Thanks for sharing! Looking at the different configurations, I can see that the local machine has diff/merge tools configured, but the VM does not. Perhaps this could be contributing to the issue (maybe LFS is waiting for a diff tool), but I have been unable to reproduce the issue on my end.
Would anyone else be able to share their Sublime Merge debug information for the affected repositories?
Thanks, - Dylan from Sublime HQ
I've scrubbed all configuration from my local machine such that it would match the VM (except for the PATH variable), but unfortunately that didn't solve the issue.
I've also re-installed SM, this time directly from the website (instead of using chocolatey). Didn't solve it either.
I took the liberty to debug into the stuck git-lfs. It sits in https://github.com/git-lfs/git-lfs/blob/52d47f085ba5ae534dd26ba76d010a537ddbdc8e/lfs/pointer.go#L129, waiting for input from stdin
. stdin
is supposed to contain/provide the git object to clean (see https://github.com/git-lfs/git-lfs/blob/52d47f085ba5ae534dd26ba76d010a537ddbdc8e/commands/command_clean.go#L103).
The full callstack is this:
By some reason, on affected computers stdin
is ready but won't provide any data.
The issue is still there. macOS 12.6, working with git lfs repo and got stuck on infinitely. Can't quit the app another way than Force quitting it.
@EntroPiGames
* What version of Windows are you on? Is it 64-bit? * How did you install Sublime Merge? * Is this a public repository that you're seeing this issue on? * Do you have a `.gitignore` file in the repository? If so, could you share the contents of it? * Could you share your `.gitattributes` file for the repository in question? * Could you also share your Sublime Merge debug information if possible (accessible via the application menu under Help > Debug Information, take a moment to redact any information you feel is sensitive such as git user info, remotes, paths etc)
@dpjohnst Sorry for the late reply, but had some deadlines to meet and just continued using an older build.
I've now updated to 2079 and the repository seems to be working fine again in Sublime Merge, but that might also be due to changes made to the repo itself while using the downgraded version.
To answer your questions:
I just checked with Build 2079. Sadly, I cannot second @EntroPiGames. On my machine the issue persists with the test repo.
Hi @haikl,
When you have a spare moment, could you try updating to the latest version of Git LFS to confirm if this resolves the issue for you: https://github.com/git-lfs/git-lfs/releases/tag/v3.2.0
Additionally, would you mind sending your Sublime Merge debug information for the affected repository (Accessible via the application menu under Help > Debug Information. Take a moment to redact any information you feel is sensitive such as git user info, remotes, paths etc).
Thanks, - Dylan from Sublime HQ
@dpjohnst Hi, I tried a fresh clone of haikl's repo with his instructions from Option 1:
have a clean repo
open Sublime Merge (should show no changes and an empty summary page)
in your favorite editor, create a new file lfs/new.lfs, put some text in it, and save it
go to Sublime Merge, and go to the Untracked Files section
and it gets stuck just like written in the repo description by @haikl . Trying to see the content of new.lfs in the Untracked section results in ... forever.
I have SM (stable channel, Build 2079) use the system binaries for git, with git-lfs on version 3.2.0 and git at 2.38.1.windows.1:
>git-lfs --version
git-lfs/3.2.0 (GitHub; windows amd64; go 1.18.2)
>git --version
git version 2.38.1.windows.1
Here's the debug information after SM get's stuck when viewing the content of new.lfs (I replaced my username with ** in it)
=== App Version Information ===
Build: 2079
=== Git Version Information ===
Using Git: C:\Program Files\Git\cmd\git.exe (system)
git version 2.38.1.windows.1
PATH: C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Windows\System32\OpenSSH\;C:\Program Files\Perforce\;C:\Program Files\dotnet\;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\WINDOWS\System32\OpenSSH\;C:\Program Files\Git\cmd;C:\Program Files\Git LFS;C:\Users\******\AppData\Local\Microsoft\WindowsApps;C:\Users\******\.dotnet\tools;C:\Users\******\AppData\Local\GitHubDesktop\bin;C:\Program Files\Sublime Merge;
=== Browse Page Information ===
HEAD: e8a513c2ce9db22ff7481574b1b991a318d6e7e4
Is in merge: 0
Is in cherry_pick: 0
Is in rebase: 0
Is in revert: 0
=== Git Status Information ===
?? lfs/new.lfs
=== Our Status Information ===
?? lfs/new.lfs
=== Git Config Information ===
branch.main.merge=refs/heads/main
branch.main.remote=origin
core.autocrlf=true
core.bare=false
core.excludesfile=C:\Users\******\Documents\gitignore_global.txt
core.filemode=false
core.fscache=true
core.ignorecase=true
core.logallrefupdates=true
core.repositoryformatversion=0
core.symlinks=false
credential.helper=manager-core
credential.https://dev.azure.com.usehttppath=true
diff.astextplain.textconv=astextplain
difftool.sourcetree.cmd='C:/Program Files/Perforce/p4merge.exe' "$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
http.sslbackend=openssl
http.sslcainfo=C:/Program Files/Git/mingw64/ssl/certs/ca-bundle.crt
init.defaultbranch=master
lfs.repositoryformatversion=0
mergetool.sourcetree.cmd='C:/Program Files/Perforce/p4merge.exe' "$BASE" "$LOCAL" "$REMOTE" "$MERGED"
mergetool.sourcetree.trustexitcode=true
pull.rebase=false
remote.origin.fetch=+refs/heads/*:refs/remotes/origin/*
remote.origin.url=https://github.com/haikl/sublime-merge-1157.git
user.email=********
user.name=*******
=== Our Config Information ===
Git Config Path Information
Using config path: /C/ProgramData/Git/config
Using config path: /C/Program Files/Git/etc/gitconfig
Using config path: /C/Users/******/.config/git/config
Using config path: /C/Users/******/.gitconfig
Using config path: /C/test_repo/.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
Hi all,
I finally have some good news to share - we've identified the cause of the issue and are working on a fix.
Unfortunately the fix won't be ready for the next build, but we are hoping to have it ready in a subsequent build. Thank you for your patience while this was investigated, and stay tuned.
Kind regards, - Dylan from Sublime HQ
Hi all,
A quick update - we've just released Sublime Merge 2081 (development build) which aims to address this issue. When you have a spare moment, could you confirm whether the issue is resolved on your end in Sublime Merge build 2081?
We've also got a few more fixes on the way which should address stability here, and I'll keep you updated when these get released.
Kind regards, - Dylan from Sublime HQ
When you have a spare moment, could you confirm whether the issue is resolved on your end in Sublime Merge build 2081?
Excellent. I just tried it and it seems to work :) Thank you.
I can also confirm this works now. Thanks!
I have also run into this issue several times and build 2081 resolves it for me. Thank you!
It took me some time to spot the dev build download section. The new version solves the problem. I already successfully pushed a change to the test repo using Sublime Merge. Thanks!!!
Fixed in Sublime Merge 2083 (stable) :tada:
Hi, I'm having a similar issue with "Loading changes..." in a non-LFS repo since upgrading to v2083.
Did revert to v2079 and cannot reproduce the issue anymore.
Thanks, I’m still having issues, unfortunately. I had to switch to Fork in the meantime as on Mac and LFS Sublime merge is not a way to go.
On 24 Feb 2023, at 10:11 AM, Thomas Ghysels @.***> wrote:
Hi, I'm having a similar issue with "Loading changes..." in a non-LFS repo since upgrading to v2083.
Did revert to v2079 and cannot reproduce the issue anymore.
— Reply to this email directly, view it on GitHub https://github.com/sublimehq/sublime_merge/issues/1157#issuecomment-1443263075, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAN5QHB4IWWJA56BDPKL4FDWZB3LRANCNFSM45U2Z2AA. You are receiving this because you commented.
Having this issue on lfs-enabled repo with:
WORKAROUND:
Repro on macOS with build 2101:
Loading changes...
ps aux | grep git-lfs
erik 67310 0.0 0.0 411887120 12496 ?? S 1:19PM 0:00.13 git-lfs clean -- meteor/dev_bundle.tar.gz
erik 67309 0.0 0.0 411887344 12336 ?? S 1:19PM 0:00.03 git-lfs clean -- mongo/6.0/bin/mongostat
killall git-lfs
several times and the UI will become unstuck
Version info
Description
The tool will not load the local changes, instead shows Loading changes... and never changes state. I have tried other git clients to see if it's a problem with my repo and they are able to show the local changes just fine, not sure what is going on. I have also tried deleting and re-cloning the repo, this fixes the issue temporarily but will quickly stop working.
Steps to reproduce
Steps to reproduce the behavior:
Expected behavior See local changes after a few seconds