I’m considering moving my FME workspaces to a git workflow. So far I’ve not used official version control, but I’ve noted that FME seems to be improving in this area. Any tips or advice from those of you who have done this succesfully?
Considering Git / GitHub for FME
Best answer by itsmatt
I can recommend source tree for integration with FME. It’s not perfect but it makes for easy comparisons with the external diff tool once you’ve set it up properly, I think it’s documented in one of the links
It works best when you’re able to keep workspaces small, but it doesn’t break when they get bigger, it’s just a little more annoying doing any kind of conflict resolution. It’s really hard to avoid conflicts and sometimes its easier to just overwrite one version with another instead of going though several different commits (bad practice). I try to work on new features in a new feature branch, however, if I needed to put in a bug fix while working on a new feature it became pretty annoying pretty quick having to do a rebase after the fix and ended up with a bit of overhead. Getting your head around rebasing and conflict resolution is a bit of a headache, however, AI can really help there in terms of understanding.
The change detection tool is pretty helpful, however, it compares the transformers based on the transformer name - so if you’ve got an AttributeManager_4 for example in version a) and in version b) you’ve done a bit of a rework and have AttributeManager_4 in a completely different place then it will want to compare the two unrelated items. It makes sense of course, but it’s a bit annoying.
There are also some other quirks with it as well you’ll no doubt come across if you start using it more. One that can be a little frustrating is that for every change you make to the editable side FME will re-compare each time, usually fine, however, gets old fast when working on larger workspaces.
The other thing which is a little problematic/clunky is when you are working on resources (e.g., Custom Transformers. These are perfect to have in git because they can be used across projects, however, because in order to use them they need to actually be in a specific folder (e.g., network shared folder or local FME folder) it means that you need to have a process to make sure you’re custom transformers are up-to-date with what you expect when you come to use them. Ideally there would be a way to keep all your components for a given project together. I created an idea here:
In general though I would definitely suggest keeping your important projects in git. Other things which are helpful are all the DevOps pipeline tools which are build around git. It means you’re able to write tests which can get run every time you make a commit for example.
The FME Flow connection to git is helpful for a backup, however, from what I understand it’s limited to github. If you want to work with something like Gitlab or azure DevOps then it’s just another backup.
Login to the community
No account yet? Create an account
An FME Account is required to contribute
LoginEnter your E-mail address. We'll send you an e-mail with instructions to reset your password.



