hop icon indicating copy to clipboard operation
hop copied to clipboard

[Bug]: GUI interactions slows down if project's in GIT

Open sramazzina opened this issue 4 weeks ago • 5 comments

Apache Hop version?

2.17-SNAPSHOT

Java version?

openjdk-17

Operating system

Windows

What happened?

I'm opening a Hop project that has the integration-tests/transforms directory as its root. The idea was to open that directory's files from inside Hop to add some integration tests. If the directory is accessed from inside the Hop repository the interactions through the Hop GUI are really slow because there are a lot of delays between an interaction and the next. If I move the directory out of a Git repo and I will try to access the files from inside the Hop GUI there aren't any delays and the GUI behaves normally.

Issue Priority

Priority: 3

Issue Component

Component: Other

sramazzina avatar Dec 15 '25 21:12 sramazzina

We need to load the git repository information in the background and paint the explorer tree and toolbar without VCS information until that is done. Afterwards we can then perhaps refresh the toolbar and tree.

mattcasters avatar Dec 16 '25 08:12 mattcasters

Raised to P1 (Critical) since the UI becomes nearly impossible to use with larger git projects like our transforms integration tests project. This is because after every click in the tree there are refreshes happening and queries to the jgit API.

mattcasters avatar Dec 16 '25 08:12 mattcasters

Running GitGuiPlugin.rootChanged() in the background (Display.asyncExec()) helps with showing the project tree and Hop GUI a lot faster. (saving 3-4 seconds) The next problem seems to be that every time you open a transform dialog and close it again, some refresh is triggered which takes another second or so, freezing all motor functions.

mattcasters avatar Dec 16 '25 08:12 mattcasters

Good thing we can test this with a large repository in the back. This gives a real life situation and issues larger project might be facing without us knowing.

hansva avatar Dec 16 '25 09:12 hansva

After every interaction with an action or transform, we get a trigger to GitGuiPlugin.refreshChangedFiles() which takes a bit. The more staged files, the more ignored files, the longer it will take. We can do this in the background as well, but perhaps we can find a better trigger for this information update.

mattcasters avatar Dec 16 '25 10:12 mattcasters