Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: SVN: Как хранить файлы, которые одновременно являются и результатом и исходниками
Форум разработчиков электроники ELECTRONIX.ru > Cистемный уровень проектирования > Управление проектами
syoma
Извиняюсь, но SVN для меня новая, поэтому прошу прощения, если это где-то уже написано или обсуждалось.

В общем сейчас перемещаем свои проэкты в репозиторий и возник вопрос, как хранить файлы, которые одновременно являются и результатом одних проектов и исходниками в других?
Т.е. например у нас есть проект для ПЛИС.
В MATLAB/Симулинк есть модель из которой генерится HDL код.
Этот HDL код используется как исходник в EDK проекте и вместе с другими исходниками из него делается bitstream. В EDK проекте помимо модели также присутствует софтпроцессор для которого нужно будет сгенерировать код. Для этого из EDK/SDK генерируются .c и .h файлы, которые являются драйверами и используются в Linux проекте для написания приложения, которое в дальнейшем компилируется и запускается на софтпроцессоре.
Надеюсь более или менее понятно объяснил.
Конечно понимаю, что SVN рекомендует хранить только исходники и никаких генерационных файлов, но тогда возникает следующие проблемы:
1. Если создать рабочую копию, то все этапы генерации и компиляции нужно проходить заново - при нашем проекте - это генерация HDL кода, синтез и разводка ПЛИС, компиляция LINUX ядра и приложения - вся сборка занимает около 8 часов. А иногда нужно всего -лишь подкорректировать только что-то в конце цепочки - например в приложении для процессора.
2. Не все пользователи имеют все необходимые проги. Т.е. тот кто пишет код для процессора под linux может не иметь Matlab и EDK и таким образом он вообще не может получить исходники для своего проэкта.

Вопрос - как это решить. Хранить результаты тоже? Если хранить то где их хранить - в исходных проектах или в проектах, где они используются? Как тогда все остслеживать?
richie
Лично я храню и результаты сборок.
Именно из-за описанных Вами проблем.

Единственное, что нужно сделать сразу - завести для каждого проекта свой репозиторий.
syoma
Цитата(richie @ Jul 12 2013, 10:18) *
Лично я храню и результаты сборок.

Так где храните? В проектах, где они сгенерированы, или в проектах, где они используются? И как их потом подключаете?
neiver
Вам нужен не только репозиторий для исходников, но и репозиторий для результатов сборки (артефактов). Для первого SVN, для второго отлично подойдёт Maven.
syoma
У меня есть доступ только к SVN.
Сергей Борщ
QUOTE (syoma @ Jul 12 2013, 10:40) *
Так где храните? В проектах, где они сгенерированы, или в проектах, где они используются?
Логика подсказывает, что хранить нужно там, где используются. Тогда
а) не будет проблем привязки ревизий генерирующего репозитория к ревизиям использующего.
б) использующий проект достается целиком одним махом из одного репозитория готовым к сборке.
vitan
8 часов - это еще немного.
Вот, если взять стандартный гостовский процесс внесения изменений в КД, то там может доходить до нескольких лет. sm.gif Поэтому надо подумать, нужна ли принудительная синхронизация всего проекта целиком. Может оказаться так, что это не обязательно, а может, что и нужна. Когда-то на конструкторском форуме видел, что некоторые фирмы типа Сухого могут при внесении изменений в один болтик пересобрать всю модель фюзеляжа самолета. Но им это, очевидно, надо, иначе были бы проблемы. Вот и надо подумать, будут ли у Вас подобные проблемы, и в каком масштабе, если этого не делать.
Лично я предпочитаю сохранять результаты, а не только исходники, но только те результаты, которые потом используются. При этом, если проект большой, то вводится некая иерархия. Те, кто используют результаты от предыдущих этапов, берут для себя исходные данные из соответствующих папочек. В эти папочки файлы попадают путем ручного переноса или настраивается скрипт, который запускается после окончания предыдущего этапа. Все папочки для всех этапов проекта лежат в одной общей корневой папке проекта, благодаря чему можно одним движением пометить тегом как исходники, так и результаты. Как-то так...
syoma
Цитата(Сергей Борщ @ Jul 12 2013, 12:14) *
Логика подсказывает, что хранить нужно там, где используются.

А мне - что там, где генерируется. Например, если один и тот же сгенерированный файл используется в нескольких проектах.
Цитата
а) не будет проблем привязки ревизий генерирующего репозитория к ревизиям использующего.

По идее это должно быть решаемо настройкой четкой привязки использующего репозитария к ревизии генерирующего через svn:external. Или не?

Raven
Цитата(syoma @ Jul 12 2013, 14:34) *
По идее это должно быть решаемо настройкой четкой привязки использующего репозитария к ревизии генерирующего через svn:external. Или не?

Именно так. Причем можно разные папки генерирующего использовать вразбивку (ссылка-то в виде URL/revision!).
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2024 Invision Power Services, Inc.