Why does mendix re-download the full application when swapping branches with git?

I don't get why mendix insist on downloading a second copy of my project and creates it inside a folder with "project name"-"branch name" every time i swap branches.   looking at previous experience in high code situations, i've never needed to sacrifice that much space on my devices for a single project. It feels extremely awkward having to resort to manually opening up a command line interface and doing my git checkouts there. same with more advanced version control actions like cherry picking, reverting specific commits, ....   are these legacy leftovers from when mendix only worked with SVN subversioning?
2 answers

Hi Jeroen,

I agree, it takes some getting used to, especially when comparing the experience to high code. Mendix is working hard on improving the experience and I expect it to improve much more in the coming months. I think there are several reasons, SVN legacy being one of them. Another major bottleneck is the fact that the .mpr package is a binary file, and Git is not great at handling those. If you have any ideas, do post them on the Idea forum, it really helps.


git indeed works best with and on textual changes, like you said, large binary dumps as binary are contained in a SHA1 way, with git just keeping every single version of that file, something that long term could lead to bloat. Would it be possible to encode this binary file with base64 and save this that way?


unlike raw binary data, Base64 data is ASCII readable, whereas git has zero issues handling diffs on files with a size up to 2 gigabytes of data, taking the original file in a git ignore file, with launching the modeler converting the base64 file back to the mpr file and overwriting the old mpr file.


and converting base64 on opening of the modeler shoudn't be overly complicated.