Comments 6
А можно узнать, как можно попробовать хотя бы самую простую версию MATLAB? Несколько лет назад я интересовался этим вопросом. Но тогда речь шла только о том, чтобы дать на месяц версию под конкретный проект с последующим приобритением организацией лицензии.
Спасибо, полезные тексты. Я сам давно работаю на связке Matlab + SVN - примерно тот же принцип, просто исторически так сложилось, что не git.
По поводу сравнения бинарных файлов. Понятно, что в каких-то случаях сам MatLab умеет сравнивать, но для этого приходится жорглировать между двумя утилитами (ваш git desktop или мой tortoise svn - и сам MatLab). Я одно время пытался разобраться, как настроить сравнение непосредственно в утилите, будь то git или svn. Подавляющее большинство "наших" бинарных файлов на самом деле - zip-архивы со множеством xml. И в подавляющем случае сравнения этих xml-файлов было бы достаточно, чтобы понять природу изменения. И вроде как даже и git, и svn поддерживают обработку на лету каких-то форматов, то есть существует возможность сделать предварительную обработку (разархивирование) файла перед сравнением - и пост-обработку (обратное архивирование) после изменений, например в процессе merge.
Но я так и не смог разобраться с тем, как это работает :-/ Так что продолжаю работать так, как у вас описано. Ну и по возможности избегаю бинарных файлов (в MatLab в отличие от SimuLink это достаточно просто, хотя LiveScripts иногда и жаль).
Мне приходилось экспериментировать с распаковкой бинарных файлов MATLAB, но не очень удачно.
Чтобы поменять код в live-скрипте, мы распаковывали mlx, меняли код во внутреннем m-файле и запаковывали назад в mlx. И по началу оно работало хорошо, но потом начали ловить странные баги в обработанных скриптах. Пришли к выводу, что ручная перепаковка работает ненадежно и лучше ее избегать.
Кстати, не так давно в матлабе появился способ теснее интегрироваться с Git/SVN. Суть в том, что матлаб регистрируется в системе как инструмент для проведения сравнений и слияний:
В таком случае после git diff или git merge автоматически открывается MATLAB/Simulink. Если пользовать гитом из командной строки, то так наверно чуть удобнее.
Еще мне пришлось провести работу над собой и убедить себя, что коммитить бинарные mlx-скрипты не так уж и страшно, если они реально полезны для решения задачи :) Тем более если кодовую базу максимально выносить в m-файлы и собственные библиотеки.
MATLAB + Git: с чего начать командную работу