реклама на сайте
подробности

 
 
> Система контроля версий для FPGA проектов., Какие на данный момент существуют системы контроля версий для FPGA ?
Flip-fl0p
сообщение Apr 26 2018, 18:15
Сообщение #1


В поисках себя...
****

Группа: Свой
Сообщений: 729
Регистрация: 11-06-13
Из: Санкт-Петербург
Пользователь №: 77 140



Приветствую Уважаемые посетители форума !
У начальства возникла идея внедрить на предприятии систему контроля версий для программистов и FPGA разработчиков.

На данный момент я работаю так:
1. В шапке каждого HDL файла указаны все изменения файла с описанием изменения, и датой внесения изменения.
2. Каждый день по выключению компьютера на сервер делается backup всех HDL файлов, констрейнов, настроек quartus (.QSF) и пр. файлов, отвечающих за создание проекта.
3. В отдельной папке с проектом храню все фотографии блок схем алгоритмов, диаграмм переходов автоматов, структурных схем(я их фотографирую, поскольку предпочитаю сначала все нарисовать на бумаге ручкой, а бумагу я быстро теряю).

Хотелось бы уточнить у знающих людей - а как правильно организовать такую систему применительно к проектам на ПЛИС ?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
AVR
сообщение Apr 27 2018, 10:58
Сообщение #2


фанат Linux'а
*****

Группа: Свой
Сообщений: 1 353
Регистрация: 23-10-05
Из: SPB.RU
Пользователь №: 10 008



Цитата(Flip-fl0p @ Apr 26 2018, 21:15) *
Приветствую Уважаемые посетители форума !
У начальства возникла идея внедрить на предприятии систему контроля версий для программистов и FPGA разработчиков.
Хотелось бы уточнить у знающих людей - а как правильно организовать такую систему применительно к проектам на ПЛИС ?

TortoiseHg (встроенный Mercurial в комплекте), можно git+GitLab
но THg(Mercurial) я предпочитаю гораздо сильнее

Вообще, проекты ПЛИС не очень хорошо ложатся для таких систем контроля версий лишь по простой причине того, что беспорядочно суют мусорные файлы и производные куда ни попадя. Хотя в последних версиях САПР с этим всё лучше и лучше. Но приходится осознанно вручную добавлять первичные файлы, у IP ядер добавлять только важное (а примеры и прочее не добавлять), и исключать производные и мусор.

Причем я использую функцию hg purge и git clean -f -d -x чтобы убрать все файлы не из проекта (почистить). Проект после таких действий должен полностью собираться и работать, а для этого нужно не забыть важные файлы и исключить лишние. Тут нужен опыт. Первое время даже важное будете забывать добавлять и при обмене кодом между ПК будут нерабочие проекты, так что про purge/clean пока забудьте.

P.S. Но я в шоке, что программисты работали без системы контроля версий. Вы там выпускники что ли? lol.gif biggrin.gif


--------------------
Go to the top of the page
 
+Quote Post
Koluchiy
сообщение Apr 27 2018, 11:31
Сообщение #3


Знающий
****

Группа: Свой
Сообщений: 972
Регистрация: 12-04-09
Из: Москва
Пользователь №: 47 543



Цитата(AVR @ Apr 27 2018, 14:58) *
P.S. Но я в шоке, что программисты работали без системы контроля версий. Вы там выпускники что ли? lol.gif biggrin.gif

Иногда лучше без них, чем с ними. У нас вон как организовали всё это дело, так народ повадился менять чужие исходники, даже не уведомляя об этом хозяина.
Ну, типа, приходишь с утра, а проект, который вчера компилился и работал, уже даже не компилится, потому что кто-то чего-то жуй пойми зачем поменял без спросу.
И начинаешь смотреть, кто чего менял и инако хватать за руки.

Патамучта бардак везде, и дополнительные возможности по его распространению, попадающие не в те руки, могут привести не к тем последствиям, для которых СВНы придумывались.
Сейчас активно думаю в сторону разграничения прав доступа, но думаю что будет много крика про ущемление прав и невозможно работать.
Go to the top of the page
 
+Quote Post
dxp
сообщение Apr 28 2018, 04:34
Сообщение #4


Adept
******

Группа: Свой
Сообщений: 3 469
Регистрация: 6-12-04
Из: Novosibirsk
Пользователь №: 1 343



Цитата(Koluchiy @ Apr 27 2018, 18:31) *
Иногда лучше без них, чем с ними. У нас вон как организовали всё это дело, так народ повадился менять чужие исходники, даже не уведомляя об этом хозяина.
Ну, типа, приходишь с утра, а проект, который вчера компилился и работал, уже даже не компилится, потому что кто-то чего-то жуй пойми зачем поменял без спросу.
И начинаешь смотреть, кто чего менял и инако хватать за руки.

Патамучта бардак везде, и дополнительные возможности по его распространению, попадающие не в те руки, могут привести не к тем последствиям, для которых СВНы придумывались.

Это одна из проблем систем управления версий с центральным репозиторием. У систем с распределённым репозиторием главный реп - это ваш локальный и никто в него просто так не влезет. Всё, что туда попадает, вы контролируете, а чтобы не смешивалось, рулят ветки, которые, например, в git, реализованы очень эффективно.


--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
Go to the top of the page
 
+Quote Post
spectr
сообщение Apr 28 2018, 06:10
Сообщение #5


Местный
***

Группа: Свой
Сообщений: 285
Регистрация: 10-12-04
Из: Earth
Пользователь №: 1 437



Цитата(dxp @ Apr 28 2018, 07:34) *
Это одна из проблем систем управления версий с центральным репозиторием. У систем с распределённым репозиторием главный реп - это ваш локальный и никто в него просто так не влезет. Всё, что туда попадает, вы контролируете, а чтобы не смешивалось, рулят ветки, которые, например, в git, реализованы очень эффективно.


Вы пришли с утра на работу и, по-хорошему, вам надо запуллиться, дабы иметь актуальные исходники. И тут вдруг выясняется что ваш controller.v ночью подправил Вася Пупкин. Далее есть два варианта:
1. Если у Вас просто система контроля версий и всё.
Вы злитесь и идете бить лицо Василию, попутно ломая ноги PM-у. Утрированно, конечно, но смысл в том что вы не будете знать причину изменений в коде и потратите время на пересогласование актуального сорца.
Это, хотя и выстреливает очень редко, но методически - крайне плохо.

2. У Вас система контроля версий, которая не дает сделать коммит без подписи (возможно, содержащей определенные теги-метки).
Вася Пупкин, после правки вашего controller.v вынужден описать в коммите что он там наделал. Вы получаете уведомляшку, после этого автоматом создается тикет в code-review и команда (Вы в том числе) смотрит чо он там понаписал посреди ночи. И уже после этого PM или тимлид подтверждает коммит, перекидывая его в рабочую ветку. Примерно так.
Это, пожалуй, самый корректный вариант. Но он да, требует затрат на обучение всем этим CVS-ным штукам. Зато потом в репе всегда будет гарантированно собирающийся корректный актуальный проект.

Итого, у систем контроля версий проблемы конечно есть, но то что описали Вы - имхо, чисто методологическая проблема на уровне организации работы команды.
Go to the top of the page
 
+Quote Post
dxp
сообщение Apr 28 2018, 09:09
Сообщение #6


Adept
******

Группа: Свой
Сообщений: 3 469
Регистрация: 6-12-04
Из: Novosibirsk
Пользователь №: 1 343



Цитата(spectr @ Apr 28 2018, 13:10) *
Итого, у систем контроля версий проблемы конечно есть, но то что описали Вы - имхо, чисто методологическая проблема на уровне организации работы команды.

Вы как будто не читали то, что я написал. Я разве что-то сказал против системы контроля версий? Я сказал лишь, что описанный сценарий может возникать в системах контроля версий с центральным репозиторием - например, Subversion.

В системах контроля версий с распределённым репозиторием (хотя название неудачное, правильнее это называть с локальным репозиторием) такой проблемы нет. Там сценарий будет такой (на примере git):

У меня на локальной машине есть проект под контролем, соответственно имеется локальный репозиторий. В нём я веду всю основную работу, а удалённый репозиторий (их, кстати, может быть сколько угодно) используется только для публикации кода и для синхронизации изменений. Для этого в нём публикуются только некоторые ветки (публичные).

Далее, [события по вашему примеру] пришёл я утром на работу, и могу спокойно продолжать и мне без разницы, что там кто-то накидал в удалённый реп. Если нужно вытянуть оттуда изменения, которые мне нужны прямо сейчас для работы - а это, кстати, я должен же как-то узнать, что там кто-то что-то нужное мне положил, т.е. если были изменения, то это уже не внезапная неожиданность, - я могу посмотреть, что там положили.

Технически я просто вытягиваю ветку из удалённого репа в локальный с помощью git fetch - при этом слияния с локальной веткой не происходит (если надо, чтобы произошло - например, я знаю, что там всё гуд, можно доверять, то делаю git pull). После этого я могу спокойно и комфортно смотреть все изменения - и кто их сделал, и когда, и какой коммент написал, и что за изменения (диффом). Если всё в норме, то делаю git merge. Если что-то не так, то зову причастных и разбираемся.

Ещё один момент. Даже если сразу сделать git pull и горбатые изменения слились в локальную ветку, то ничего тут страшного нет. Дело в том, что ветка, которая публикуется для обмена, не является текущей для разработки. Разработка у нас всегда ведётся в т.н. feature branches, которые потом сливаются в общую, после чего убиваются. Методика работы подробно описана тут. Поэтому горбатые изменения никогда не попадают в локальную рабочую ветку и там всё остаётся целостным. А слитую по ошибке локальную ветку можно тут же откатить.

Таким образом, никаких поломок и проблем нет в принципе. А если кто-то сливает шлак в публичную ветку, так это сразу видно без последствий для остальных, и с этим разгильдяем уже разбираются отдельно.


--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
Go to the top of the page
 
+Quote Post
AnatolySh
сообщение Apr 29 2018, 13:22
Сообщение #7


Частый гость
**

Группа: Свой
Сообщений: 92
Регистрация: 20-01-06
Из: Зеленоград
Пользователь №: 13 407



Спрошу коротко:
читать здесь (ну и все содержательные посты в этой ветке),
ставить отсюда?


--------------------
WMBR
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Flip-fl0p   Система контроля версий для FPGA проектов.   Apr 26 2018, 18:15
- - aaarrr   Цитата(Flip-fl0p @ Apr 26 2018, 21:1...   Apr 26 2018, 19:33
|- - dxp   Цитата(aaarrr @ Apr 27 2018, 02:33) git? ...   Apr 27 2018, 05:10
- - ViKo   И снова пишу - TortoiseHg.   Apr 26 2018, 20:01
- - Alex77   Цитата(Flip-fl0p @ Apr 26 2018, 21:1...   Apr 27 2018, 05:59
- - _Ivan_33   http://www.fpgadeveloper.com/2014/08/versi...o-pro...   Apr 27 2018, 06:11
- - Vascom   Используй git.   Apr 27 2018, 06:24
- - Amurak   Про Гит уже писали?   Apr 27 2018, 06:47
- - warrior-2001   TortoiseSVN. Всем устраивает.   Apr 27 2018, 08:07
- - one_eight_seven   Ребята, а вы в курсе, что tortoise - это клиент? ...   Apr 27 2018, 09:28
|- - Vascom   Цитата(one_eight_seven @ Apr 27 2018, 12...   Apr 27 2018, 09:31
|- - Alex77   Цитата(Vascom @ Apr 27 2018, 12:31) Други...   Apr 27 2018, 09:45
- - alexadmin   Проблема-то в том, что софт очень своевольно обращ...   Apr 27 2018, 09:36
|- - Flip-fl0p   Цитата(AVR @ Apr 27 2018, 13:58) P.S. Но ...   Apr 27 2018, 11:04
|- - AVR   Цитата(Koluchiy @ Apr 27 2018, 14:31) Ино...   Apr 29 2018, 17:52
- - x736C   Использую git и два файла. Файл исключений .git...   Apr 27 2018, 11:16
- - one_eight_seven   ЦитатаИногда лучше без них, чем с ними. У нас вон ...   Apr 27 2018, 11:45
- - one_eight_seven   Вас страшно читать. Вы специально используете инст...   Apr 28 2018, 05:29
- - one_eight_seven   Цитатаставить отсюда? Не обязательно. Иногда доста...   Apr 29 2018, 14:23
- - one_eight_seven   ЦитатаСтоп, а не работаете ли Вы случайно с убожес...   Apr 29 2018, 18:10
|- - AVR   Цитата(one_eight_seven @ Apr 29 2018, 21...   Apr 30 2018, 07:14
- - one_eight_seven   ЦитатаНо "удел недалеких людей" под пред...   Apr 30 2018, 08:08
- - dvladim   Не сочтите за наброс, но: А если все файлы бинарны...   Apr 30 2018, 13:43
|- - AVR   Цитата(dvladim @ Apr 30 2018, 16:43) А ес...   May 11 2018, 08:08
|- - dxp   Цитата(AVR @ May 11 2018, 15:08) Нет, тут...   May 11 2018, 10:42
- - one_eight_seven   ЦитатаВозможность поднять файл от нужной даты. Что...   Apr 30 2018, 13:56
|- - baumanets   Теме самое место в разделе управления проектами. Л...   Apr 30 2018, 21:29
- - dxp   Добавлю свои 5 коп. на тему svn vs. git. На svn си...   May 3 2018, 08:38
|- - nice_vladi   Цитата(dxp @ May 3 2018, 08:38) Добавлю с...   May 3 2018, 09:22
- - Flip-fl0p   Господа, спасибо большое за ответы ! Скорее вс...   May 3 2018, 09:26
|- - Tpeck   Цитата(Flip-fl0p @ May 3 2018, 12:26...   May 11 2018, 07:20
|- - Flip-fl0p   Цитата(Tpeck @ May 11 2018, 10:20) Может ...   May 11 2018, 07:23
- - Doka   https://github.com/barbedo/vivado-git как работае...   May 3 2018, 10:03
- - one_eight_seven   ЦитатаНет, тут конечно git не очень хорош. И это т...   May 11 2018, 09:00


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 19th June 2025 - 13:05
Рейтинг@Mail.ru


Страница сгенерированна за 0.01487 секунд с 7
ELECTRONIX ©2004-2016