My team using Node-RED to develop rather big project with Frontend UI part to control it. We're having issues with merging our commits with changes in the same big functions or templates.
Our setup is:
git for version control;
remote server for Node-RED instances
Production Node-RED instance (for running our actual product version, only git pulls)
Test Node-RED instance (for creating fully merged development version for testing before uploading to production)
Two Devel Node-RED instances for simultaneous development by our team (2 devs) without interrupting one another with constant flow update messages.
For our workflow: every feature developed by someone on separate Devel Node-RED instance and gets pushed to separate "feature-0000" branch.
While developing, we often encounter cases when we need to add some changes on the same page, which has its code stored in "template" node, or we need to change code in one big "function" node so we have constant merge conflicts.
As was already mentioned on this forum, because of storing flow in JSON format, it's impossible to merge changes inside function or template node. At first we tried using VS Code and it kinda worked great for us even merging this type of conflicts but flows quickly grew too big for VS Code to handle, and now it gives infinite loading every time we're trying to merge.
Now we back to Node-RED conflicts solving capabilities + merging our big functions/templates "by hands" (manually merging code by code and committing to one of the instances) before every release to preserve all features, developed on different instances.
I have one interface suggestion for this. Since Node-RED already has a "compare code" button in conflict solving window, what if you could choose local/remote not for all code, but for every difference it found, and save it like local version for further merge commit. And even better to be able not only choose, but to rewrite code fully as you like (like in "Meld" for example).