Контроль версий, мерж/пул-реквесты и работа в команде
Добавлено: 11 июл 2022, 20:55
Всем доброго дня.
Заинтересовал меня вопрос об организации командной работы над проектом, представленным в виде G-кода. Предположим:
1. Проект представляет из себя набросок алгоритма в виде некоторой шаренной библиотеки (dll/so), функии которой подключают в какой-то конечный продукт на стадии обкатки алгоритмов.
2. Обкаткой алгоритмов занимается несколько человек одновременно, среди них есть как новички, так и бывалые.
3. Внутри команды хотелось бы обсуждать применяемы решения, критиковать их итд...
Хотелось бы обеспечить как-то возможность контроля версий для проекта по аналогии с git, как минимум для возможности ведения нескольких веток продукта, возможностей слияния веток и хоть какого-то ревью. Какие варианты тут можно предположить?
Как я понимаю, для нахождения diff старой и новой версии внутри VI нужно:
1. Графическое представление объектов на диаграмме со связями как-то представить в виде кода (получить, например, UML Component Diagram в формате yaml)
2. Получить классический "текстовый" diff для текстового представления
3. Перестроить VI так, что бы каждое изменение полученное по diff было внесено в case структуру управляемую константой boolean (что бы можно было листать кейсы и смотреть, что было, и что стало)
В связи с моим предположением у меня вопросы:
1. Есть ли что-либо готовое со сторона NI для командной работы?
2. Есть ли вариант экспорта VI в какой-либо документированный формат?
3. Есть ли какие либо варианты импорта в LabVIEW из документированных форматов?
Заинтересовал меня вопрос об организации командной работы над проектом, представленным в виде G-кода. Предположим:
1. Проект представляет из себя набросок алгоритма в виде некоторой шаренной библиотеки (dll/so), функии которой подключают в какой-то конечный продукт на стадии обкатки алгоритмов.
2. Обкаткой алгоритмов занимается несколько человек одновременно, среди них есть как новички, так и бывалые.
3. Внутри команды хотелось бы обсуждать применяемы решения, критиковать их итд...
Хотелось бы обеспечить как-то возможность контроля версий для проекта по аналогии с git, как минимум для возможности ведения нескольких веток продукта, возможностей слияния веток и хоть какого-то ревью. Какие варианты тут можно предположить?
Как я понимаю, для нахождения diff старой и новой версии внутри VI нужно:
1. Графическое представление объектов на диаграмме со связями как-то представить в виде кода (получить, например, UML Component Diagram в формате yaml)
2. Получить классический "текстовый" diff для текстового представления
3. Перестроить VI так, что бы каждое изменение полученное по diff было внесено в case структуру управляемую константой boolean (что бы можно было листать кейсы и смотреть, что было, и что стало)
В связи с моим предположением у меня вопросы:
1. Есть ли что-либо готовое со сторона NI для командной работы?
2. Есть ли вариант экспорта VI в какой-либо документированный формат?
3. Есть ли какие либо варианты импорта в LabVIEW из документированных форматов?