|
Система контроля версий для FPGA проектов., Какие на данный момент существуют системы контроля версий для FPGA ? |
|
|
|
 |
Ответов
|
Apr 27 2018, 10:58
|

фанат 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. Но я в шоке, что программисты работали без системы контроля версий. Вы там выпускники что ли?
--------------------
|
|
|
|
|
Apr 27 2018, 11:31
|
Знающий
   
Группа: Свой
Сообщений: 972
Регистрация: 12-04-09
Из: Москва
Пользователь №: 47 543

|
Цитата(AVR @ Apr 27 2018, 14:58)  P.S. Но я в шоке, что программисты работали без системы контроля версий. Вы там выпускники что ли?  Иногда лучше без них, чем с ними. У нас вон как организовали всё это дело, так народ повадился менять чужие исходники, даже не уведомляя об этом хозяина. Ну, типа, приходишь с утра, а проект, который вчера компилился и работал, уже даже не компилится, потому что кто-то чего-то жуй пойми зачем поменял без спросу. И начинаешь смотреть, кто чего менял и инако хватать за руки. Патамучта бардак везде, и дополнительные возможности по его распространению, попадающие не в те руки, могут привести не к тем последствиям, для которых СВНы придумывались. Сейчас активно думаю в сторону разграничения прав доступа, но думаю что будет много крика про ущемление прав и невозможно работать.
|
|
|
|
|
Apr 28 2018, 04:34
|

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

|
Цитата(Koluchiy @ Apr 27 2018, 18:31)  Иногда лучше без них, чем с ними. У нас вон как организовали всё это дело, так народ повадился менять чужие исходники, даже не уведомляя об этом хозяина. Ну, типа, приходишь с утра, а проект, который вчера компилился и работал, уже даже не компилится, потому что кто-то чего-то жуй пойми зачем поменял без спросу. И начинаешь смотреть, кто чего менял и инако хватать за руки.
Патамучта бардак везде, и дополнительные возможности по его распространению, попадающие не в те руки, могут привести не к тем последствиям, для которых СВНы придумывались. Это одна из проблем систем управления версий с центральным репозиторием. У систем с распределённым репозиторием главный реп - это ваш локальный и никто в него просто так не влезет. Всё, что туда попадает, вы контролируете, а чтобы не смешивалось, рулят ветки, которые, например, в git, реализованы очень эффективно.
--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
|
|
|
|
|
Apr 28 2018, 06:10
|

Местный
  
Группа: Свой
Сообщений: 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-ным штукам. Зато потом в репе всегда будет гарантированно собирающийся корректный актуальный проект. Итого, у систем контроля версий проблемы конечно есть, но то что описали Вы - имхо, чисто методологическая проблема на уровне организации работы команды.
|
|
|
|
|
Apr 28 2018, 09:09
|

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, которые потом сливаются в общую, после чего убиваются. Методика работы подробно описана тут. Поэтому горбатые изменения никогда не попадают в локальную рабочую ветку и там всё остаётся целостным. А слитую по ошибке локальную ветку можно тут же откатить. Таким образом, никаких поломок и проблем нет в принципе. А если кто-то сливает шлак в публичную ветку, так это сразу видно без последствий для остальных, и с этим разгильдяем уже разбираются отдельно.
--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
|
|
|
|
|
Apr 29 2018, 13:22
|
Частый гость
 
Группа: Свой
Сообщений: 92
Регистрация: 20-01-06
Из: Зеленоград
Пользователь №: 13 407

|
Спрошу коротко: читать здесь (ну и все содержательные посты в этой ветке), ставить отсюда?
--------------------
WMBR
|
|
|
|
Сообщений в этой теме
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
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|