Sublime Forum

Hang when "Loading changes"

#1

I’ve got a single-user licensed Sublime Merge 2027 on Pop OS (basically Ubuntu 20.04). I have a repo with a Kicad project I’ve worked on in Sublime Merge on a bunch of different machines and it’s always been fine. On this new machine, when I open the repo it says “Loading changes…” and won’t show me any of the files I have modified. Clicking to older commits shows the files changed in those commits just fine. Running git status on the command line shows the modified files instantly, so the repo is fine.

Is there anything I can do to help debug this? The repo/branch in question is https://github.com/Neotron-Compute/Neotron-32-Hardware/tree/use_1598d_case

1 Like

#2

Also, if I stage files manually on the command line then open Sublime Merge, it all works fine and all the diffs show as expected.

0 Likes

#3

Oh. Unstaging one file in the UI was OK. When I then clicked “unstage all”, the one file I unstaged earlier remained visible and all of the other files disappeared from the UI - showing as neither stage or unstaged.

0 Likes

#4

Hi @thejpster,

Sorry to hear you’re having trouble using Sublime Merge.

Could you try running Sublime Merge in safe mode and see if the problem persists. You can do this by running ‘smerge --safe-mode’ via the command line.

Could you also confirm whether you have Sublime Text installed on this machine, and if so, whether you have any third party packages installed. I suspect a third-party syntax may be causing the hang.

Thanks,
- Dylan

0 Likes

#5

I do have Sublime Text installed, but it’s a fresh install so it had no packages - not even Package Manager.

Safe Mode doesn’t seem to help.

The minimum repo is:

  1. Clone the repo outlined above, and checkout the use_1598d_case branch.
  2. Open the repo in Sublime Merge
  3. Open the project in Kicad
  4. Open the schematic
  5. Change the schematic (e.g. move a part)
  6. Note that Sublime Merge does not show that diff of the file you just changed, and has also hung in such a way it cannot be closed, requiring you to “killall sublime_merge”.
0 Likes

#6

I have a better idea of what’s going on here. Here’s a “ps axf” whilst it’s hung:

  42760 pts/0    Sl     0:00 /opt/sublime_merge/sublime_merge --multiinstance --fwdargv0 /usr/bin/smerge ,.
  42795 pts/0    S      0:00  \_ /bin/sh -c sed -E 's/\(host pcbnew ([[:digit:]]+\.[[:digit:]]+\.[[:digit:]]+).*/\(host pcbnew \1\)/'
  42796 pts/0    S      0:00      \_ sed -E s/\(host pcbnew ([[:digit:]]+\.[[:digit:]]+\.[[:digit:]]+).*/\(host pcbnew \1\)/

Here’s my git config:

➜  neotron-common-hardware git:(feature/cpu-connector) ✗ git config  -l | grep filter
filter.kicad_project.clean=sed -E 's/^update=.*$/update=Date/'
filter.kicad_project.smudge=cat
filter.kicad_sch.clean=sed -E 's/#(PWR|FLG)[0-9]+/#\1?/'
filter.kicad_sch.smudge=cat
filter.bom_csv.clean=sed -E 's/^BoM Date:.*$/BoM Date:Date/'
filter.bom_csv.smudge=sed -E "s/BoM Date:Date/BoM Date:,`date +\"%a %d %b %Y %X %:::z\"`/"
filter.bom_html.clean=sed -E 's/^<tr><td>BoM Date<\/td><td>.*$/<tr><td>BoM Date<\/td><td>Date<\/td><\/tr>/'
filter.bom_html.smudge=sed -E "s/<tr><td>BoM Date<\/td><td>Date<\/td><\/tr>/<tr><td>BoM Date<\/td><td>`date +\"%a %d %b %Y %X %:::z\"`<\/td><\/tr>/"
filter.gerber.clean=sed -E -e 's/^%TF.CreationDate,.*$/%TF.CreationDate,Date%/' -e 's/^G04 Created by KiCad.*$/G04 Created by KiCad*/'
filter.gerber.smudge=sed -E "s/%TF.CreationDate,Date%/%TF.CreationDate,`date +%Y-%m-%dT%H:%M:%S%:z`/"
filter.gbrjob.clean=sed -E 's/"CreationDate":.*/"CreationDate":  "Date"/'
filter.gbrjob.smudge=sed -E "s/\"CreationDate\":  \"Date\"/\"CreationDate\":  \"`date +%Y-%m-%dT%H:%M:%S%:z`\"/"
filter.xml.clean=sed -E -e 's/^        <date>.*<\/date>/        <date>Date2<\/date>/' -e 's/^    <date>.*<\/date>/    <date>Date1<\/date>/'
filter.xml.smudge=sed -E -e "s/<date>Date1<\/date>/<date>`date +\"%a %d %b %Y %X %:::z\"`<\/date>/" -e "s/<date>Date2<\/date>/<date>`date +\"%Y-%m-%d\"`<\/date>/"
filter.kicad_pcb_f.clean=sed -E 's/\(host pcbnew ([[:digit:]]+\.[[:digit:]]+\.[[:digit:]]+).*/\(host pcbnew \1\)/'
filter.net_filter.clean=sed -E -e 's/\(date \".*\"\)/\(date \"Date\"\)/'
filter.net_filter.smudge=sed -E -e "s/\(date \"Date\"\)/\(date \"`date +\"%a %d %b %Y %X %:::z\"`\"\)/"

These filters are designed to clean up my Kicad files. Are you executing them in Sublime Merge and if so, are you running them correctly? They work fine for CLI git.

0 Likes

#7

Any update? I have similar issue, diff shows only when file already staged
Safemode does not help

It happens only with binary files, source code not causing hang

OS: Windows 10 Professional
Sublime Merge Build 2056

PS: It reproduces only in large repositories with binary files

0 Likes

#8

@dko, if you could, create a bug report on the issue tracker with your additional details/reproduction steps.

0 Likes