[Bug]: GUI interactions slows down if project's in GIT
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
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.
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.
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.
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.
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.