Will App Designer file be compatible with software version control (e.g. git or svn) ?

It seems the actual App Designer file is in a binary format. This makes it pointless for software version control. We can see the text in the protected editor so we can tell it's still a text file inside. Will it be possible to detach the text file from the gui development and then continue as an m file? If not then I think App Designer will be of limited use in complex GUI development.

2 Comments

I agree with this and would like to bring this back to the top. I know that appdesigner is in early stages of development, but I work on a project that has several branches, and using appdesigner would make it impossible to merge changes between those branches. It seems like a good idea and definitely has improvements over GUIDE, but as Sean mentioned, it is not something I'll be able to use for this project for this reason. Even GUIDE has a similar issue in the .fig files, but at least the bulk of the code resides in a .m file in that case.
Appdesigner is following the same framework as the .xlsx format: text files that are zip'd together in an archive. You can probably unzip and put the results under version control.

Sign in to comment.

 Accepted Answer

UPDATE: Starting in R2020b, you can use the Comparison Tool to diff and merge App Designer files. You can learn more about this new feature on this page: Compare and Merge Apps.
Previous answer for prior to 20b:
> Yes, as Steve said, you can use MATLAB Comparison Tool to diff but not merge App Designer files (mlapp).

11 Comments

Tish,
I don't think you can merge mlapp files in the MATLAB(2018a) Comparison Tool, only compare; could you please verify? I setup a test case for diff and merge and could only diff. For what it's worth, the documentation page only mentions comparing binary files and not merging. I'd appreciate any comments or suggestions you have!
Being able to merge MLAPP files is a critical need for my organization. As others have mentioned, this is a departure for version control capability vs. GUIDE, that needs to be addressed somehow.
Thanks,
Jim
Hi Jim - thanks for this info - I thought merge was enabled but I was wrong, and I have now edited my answer to say so - you can diff but not merge mlapp files. I'm interested in why you mention binary comparison - you should see a text comparison, not binary - did that doc page make you expect a binary comparison when you comparre mlapp?
I've passed on your requirements for merge to the app designer team, and I'll look into doc enhancements.
Tish,
Thank you for your response and also for passing on my request for merging mlapp files to the app designer team; that functionality would help my organization transition from GUIDE faster, with more confidence and fewer headaches.
Regarding the documentation, when MLAPP files are selected for comparison, the comparison tool allows for either an "App code comparison" or a "Binary comparison" in the "Comparison type" dropdown menu. Only the "Binary comparison" option is mentioned on the documentation page I linked to in my first comment. The "App code comparison" option is also missing from the visdiff documentation page.
Jim,
FYI there's a tool on the File Exchange that may help somewhat with transitioning your UIs from GUIDE to App Designer.
Thanks Steve, I'll check that out! We have many GUIs to (eventually) transition and that looks helpful. Any estimate on time remaining for GUIDE? Do we have 1 year, 5 years...?
Thanks, but this is not a adequate replacement for native compatibility of appdesigner with git.
You are not going to get native compatibility with git unless git itself changes. The internal file format uses the same Open XML standard that xlsx files use, which consists of a series of XML files zipped together; the zip step makes it binary.
They could make it compatible with Git by not using zip. You can concatenate everything in one file without using zip. The zip saves some space, but I don't think that benefit justifies breaking version control.
It is not a single file internally, it is a directory with subfolders and multiple XML file... using the international Open Documents standard.
Would it then not be a good option to have this directory structure in the file system as actual folders & subfolders, making it git-able, instead of hiding everything behind a zip wall? I don't see why an app project should only consist of one file.
I strongly support @Robert's comment!

Sign in to comment.

More Answers (2)

Are you concerned about being able to diff and/or merge the App Designer files? I haven't tested that following the steps to which I linked previously will allow your source control system to use the MATLAB Comparison Tool for App Designer files, but I suspect it will.

1 Comment

This seems like it could be a good solution. Here is the direct link. I set up TortiseSVN to use MATLAB for Diff and it seemed to work great. I didn't try it for Merge yet but assuming it works as expected, I think that's what I'd need. Thanks.

Sign in to comment.

It uses a zip format of some kind. The first unarchiver I tried expanded it without difficulty.

Categories

Products

Asked:

on 6 May 2016

Edited:

on 2 May 2025

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!