This means that you can't do any work in Geany until you close the external diff viewer. This seriously reduces the usefulness of the otherwise great feature of being able to use an external diff viewer.
The external diff viewer is spawned here: https://github.com/geany/geany-plugins/blob/master/geanyvc/src/externdiff.c#...
Looks like the problem might simply be solved by calling `g_spawn_async` instead of `g_spawn_sync`.
In theory yes, but due to structure of code there needs some extra handling code for temporally file created here -> https://github.com/geany/geany-plugins/blob/master/geanyvc/src/geanyvc.c#L60... ff
This seriously reduces the usefulness of the otherwise great feature of being able to use an external diff viewer.
Not sure what your workflow is. Geany does block, but the external diff tool is not getting blocked. Moreover, you may as well make edits to the current version of the file being diff'ed directly from an external diff tool (e.g. `meld`).
For the most part, GeanyVC uses external diff tool indeed more like a **side-by-side diff viewer**. Once done inspecting the diffs, the user is assumed to close the external diff tool and get back to Geany, just as it's done with internal Diff tab. Another external diff is just two clicks away.
Also GeanyVC's external diff use foregoes whatever repository "smarts" such an external diff tool may have. Some tools in fact may have merge, selective patch, etc. abilities directly supporting the underlying VCS type. This may be quite versatile indeed. If that's what you mean in your workflow, then you may just launch such a diff tool directly with the repo's base dir and use it stand-alone.
The current GeanyVC approach to create a local BASE~ copy of file under diff forces the diff tool into **file-diff-mode** (as opposed to version-diff-mode). This allows GeanyVC to use the external diff tool even with those VCS that are not supported by the external tool.
github-comments@lists.geany.org