Системи управління версіями для апаратних проектів?


59

Які є хороші версійні версії для апаратних проектів? Чи є еквіваленти коду Google, CVS та SVN? Чи підходять такі системи управління версіями для апаратних проектів, що включають файли ПК, схеми .. (навіть код прошивки)?


5
Чудове запитання! Хочеться побачити приклади сховища, що містяться у відповідях.
tyblu

+1 За визнання того, що проекти з високої радіації можуть скористатися контролем над джерелами. Хлопцям, з якими я працюю, здається, важко це усвідомлюють.
Нейт

1
Я вже деякий час використовую Mercurial для печатних плат версії, і це врятувало мою недопалку кілька разів. Однозначно гарна ідея.
Стівен Коллінгс

1
Я використовую набір інструментів gEDA для EDA і відстежую речі в git. Нещодавно я написав декілька git гаків, які автоматично генерують .png зображення будь-яких схем або друкованих плат, які були змінені, і додає їх до комітів. Це дозволяє мені скористатися зображенням GitHub, різним. PCB та gschem також мають вбудовані інструменти різного рівня, які працюють з git, які роблять щось подібне локально. Мої гачки тут: github.com/BenBergman/.git_hooks Приклад проекту , який використовує їх: github.com/BenBergman/uJoypad
бен

Відповіді:


27

В основному всі системи VCS можуть витончено обробляти текстові та бінарні файли. Звичайно, ви не можете об'єднати двійкові.

Тому поки ви не використовуєте застарілі речі, такі як CVS, ви будете добре з будь-якою системою.


3
Я використовую CVS для всіх своїх проектів (програмного та апаратного забезпечення, з друкованою платою, мікропрограмним забезпеченням, інструментами тощо) і не маю проблем. Звичайно, CVS застарілий, але в мене 20 років історії проекту, і жоден конвертер не працював, щоб перенести мої сховища до Mercurial або SVN.
Axeman

12
Тоді прагматичний спосіб - просто занадто залишити старі речі в CVS, а потім помістити нові речі в нову систему ...
Йохан

CVS прекрасна система в порівнянні з жахом, що це Microsoft Visual Source Safe, над яким я заблокований для проекту, над яким зараз працюю. Відбілити.
Кевін Вермер

@Kevin Vermeer Ви знаєте, що ви знаходитесь на шкалі негативу, коли ви порівнюєте дві "не дуже приємні" речі між собою;)
Йохан

@KevinVermeer, мені довелося використовувати sourcesafe, основу світу контролю версій. Мій останній начальник дозволив повне нехтування контролем версій через це.
Кортук

17

Раніше я використовував Subversion з Altium. Він працював успішно, але на той час відсутність інструменту diff зробила його менш корисним, ніж управління версіями з кодом. Я все ще думаю, що це варто було робити навіть без різної спроможності.

Щодо прошивки, то Subversion або Git - це чудово. Якщо ви раніше не використовували Git, спершу спробуйте Subversion (хоча це пізніше ускладнить навчання Git).

Нещодавно компанія Altium представила різний інструмент для схем і друкованих плат, тому я очікую, що Subversion зараз буде чудовим, модульним звичним божевіллям, яке постачальникам EDA вдається вбудувати у свої продукти.

Я мав намір спробувати це за допомогою нового інструменту різниці; якщо це зробити, я спробую пам'ятати, щоб розмістити посилання на репо тут.

Оновлення

Я спробував це, і мушу сказати, що я трохи недоохоплений інструментом Altium diff. Це функціонально, але зміни між оборотами плати досить істотні, що це не так корисно, принаймні для мене. Побачивши це, я вирішив забути про інструмент diff і просто скористатися Github. Ось репо, якщо вас цікавить: https://github.com/rascalmicro/pcb


Ви використовували інтегрований графічний інтерфейс SVN (з Altium) чи щось зовнішнє?
Нік Т

Найновіший Altium зі SVN - це чудово, хоча я додам, що PCB / схематичні зміни не є настільки критичними, як вони є в коді. Якщо ви маєте справу з більш ніж 3-4 максимум схематичних / випусків друкованої плати, то, можливо, дуже неправильно на етапах проектування або вимог.
Марк

@Mark: Ви говорите про бета-версію випуску 10 чи про літо 09?
Нік Т

2
Якщо зміни між оборотами плати є досить істотними, що не є корисними, ви не виконуватиметься досить часто. Здійснюйте рано, вчиняйте часто! Використовуйте теги для відстеження оборотів дошки.
Кевін Вермер

3
Я використовую SVN, і це, безумовно, варто. Моя система така: я натиснув кнопку збереження, я, мабуть, візьму на себе зобов’язання. Я слідую за змінами, читаючи повідомлення про фіксацію на зразок "Додана частина X до бібліотеки" або "Додано тестові колодки до шин I2C та SPI". Випуски, надіслані для виготовлення, зовсім інші, використовуйте svn cp trunk/ tags/releaseX/для того, щоб зробити знімок релізу. Потім можна відрізняти releaseX / файл та releaseY / файл, якщо ви хочете бачити зміни між випусками, або ви можете переглядати журнали фіксації та бачити окремі зміни. Гілки допомагають модулювати паводку комітетів.
Кевін Вермер

10

Я використовую VisualSVN Server + TortoiseSVN клієнт, і він працює чудово


7

Я використовую Google Code для розміщення Super OSD , мого проекту електроніки.

Я ексклюзивно використовую набір gEDA для управління своїми схемами та друкованими платами. Корисно, gEDA створює текстові файли (які в основному читаються людиною, хоча їх важко інтерпретувати) для схем, а не бінарних крапок, як Eagle. Наприклад, це є різницею між двома схемами , однією приблизно 5 днів і однією, яку я тільки штовхнув. Це не особливо корисно, оскільки ви фактично не можете побачити багато змін у текстових файлах, але він може показати відносні зміни - тобто масштабну переробку та зміну одномісних компонентів - і це дозволяє вам повернутися до попередніх версій.


3
+1 для використання текстових форматів для файлів. Місце на диску є дешевим, а стиснення тексту - легко. Я хотів би, щоб двійкові краплі були менш поширеними.
Кевін Вермер

4

Хитрість полягає в тому, щоб використовувати щось, що добре працює з бінарними файлами. Якщо ви багато використовуєте двійкові файли та обмінюєтесь з іншими, може бути корисним застосувати механізм блокування цих бінарних файлів. У нас виникло багато проблем із використанням Subversion з бінарними файлами та обміном з іншими, які виникли через відсутність семантики блокування та надмірного запису / об’єднання бінарних файлів разом. Додавання механізму блокування цих файлів усуває помилку людини в спілкуванні щодо того, хто редагував / змінив двійковий файл.

Якщо ви раніше не використовували контроль версій, рекомендую ознайомитися з різними способами їх роботи, і виберіть потрібний, щоб відповідати вашим потребам, яким ви та / або ваша команда зможете задовольнити вас. Розподілені системи управління версіями надають багато переваг порівняно з системами клієнт-сервер, але, як правило, складніше працювати.


3

Чому б не просто скористатися Google Code або SVN-репо? Оскільки це система контролю ревізії. Немає певного використання для цього. Це просто неймовірно корисно для декількох розробників і моніторингу змін у вихідному коді.


1
Ви це зробили? Розміщення бінарних файлів у SVN чи Mercurial для мене вийшло жахливо.
tyblu

2
Ні, я цього не маю, але я використовував SVN для не просто вихідного коду. Такі речі, як PDF та .txt файли.
Декан

2
@Tyblu, що ти маєш на увазі під страшним? Я робив це за допомогою схемних та макетних файлів, і він чудово працював для мене із підривом.
Kellenjb

Я не можу слідкувати за змінами файлів EAGLE за допомогою Mercurial. Схоже, весь файл відрізняється. Чи є у вас сховище, на яке я можу заглянути?
tyblu

5
@tyblu тому ви додаєте коментарі, коли ви перевіряєте файли :)
vicatcu

3

Раніше я використовував Subversion з Altium.

Я використовую SVN з інтеграцією Altium для схематичного захоплення: він працює добре. Треба сказати, що переглядач diff краще, ніж нічого, тому що мої файли SchDoc є бінарними, тобто неможливо порівняти інакше! Я без проблем використовую клієнт SVN, інтегрований у Altium Designer, паралельно з TortoiseSVN. Клієнт Altium трохи обмежений з точки зору можливостей SVN. Я роблю свої "теги" з черепахою.

Моя думка заснована на програмі Altium Designer 10 build 27009 та версії 13.1 build 27559.



1

Не справжня система управління версіями, але Dropbox також обробляє версію файлів, і робить їх доступними для різних людей на різних ОС. - погана система контролю версій mans;)


2
як хтось, хто раніше працював з командами: Будь ласка , не робіть цього. Dropbox не є системою управління версіями бідної людини . Це файлова папка / архівна система. Вам не потрібно використовувати git в повній мірі, щоб він був кориснішим, справді! Dropbox робить все те неправильно, що навіть CVS зробив правильно (як поводитися з новішими версіями, як обміняти зміни, як позначити конкретні зміни), це насправді не система контролю версій .
Маркус Мюллер

1

У минулі вихідні я був у Maker Faire у Сан-Матео і зустрів кілька представників нової (для мене) компанії під назвою Up-Verter . Вони в основному будують електричний інструмент CAD, який працює в "хмарі" (тобто у вашому браузері) і концептуально побудований на основі співпраці, тому слід мати справу з об'єднанням / різницею та звичайними версіями версій.

Я ще не пробував цього, і він виглядає ще трохи зеленим (не думаю, що ви насправді ще можете зробити макет плат, просто схеми), але це начебто інтригує. Вони заявляли, що можуть імпортувати файли Eagle, що є плюсом.

Я також розмовляв з представниками Eagle в наметі Element 14, і вони вказали, що вони переходять до формату XML, що є великим кроком до того, щоб зробити версію схем і верстки більш правдоподібною ... всі цікаві досягнення на цьому фронті !



0

Це справді дуже гарне питання. Оскільки FPGA підпадають під категорію "апаратне забезпечення", то вам може бути цікава структура проекту, зручна для контролю версій, яку я пропоную для проектів FPGA:

http://www.saardrimer.com/fpgaproj/

Я думаю, що ідеї та концепції легко можна застосувати до інших апаратних проектів, і взагалі. (Коментарі до цієї пропозиції дуже вітаються, btw.)


2
Посилання більше не працює.
tyblu

0

Уникайте git. Він не працює з великими сховищами добре. А ваші сховища отримають великі, якщо ви

  1. Мають бінарні схематичні файли, які змінюються лише дещо, коли вони змінюються
  2. Увімкніть трактувати двійкові файли як текст.

3
Ну ... У вас повинно бути багато невеликих репостів, одна репо на проект.
Йоган

1
@Johan - ...... Так .... Удачі з цим кошмаром на технічне обслуговування. У будь-якому випадку, у мене є 1 репо на клієнта (близько 4, сховища зараз), з багатьма підпроектами, і це працює досить добре. Принаймні, SVN, здається, зможе обробляти 5+ ГБ бінарних даних без особливих проблем.
Вонор Коннор

1
@ConnorWolf Мені буде цікаво почути, як ти це робиш. Ми робимо одне сховище Git на проект і не мали жодних проблем. Немає жодного сховища на проект, для мене звучить як кошмар технічного обслуговування.
Метт Янг

1
SVN, принаймні (напевно, теж git), схоже, зберігає двійкові розрізнення, а не повну копію файлу, тож він вражає простору.
Коннор Вольф

1
@ConnorWolf re: кошмар з обслуговування: 8 років потому: git-підмодулі - це, мабуть, те, що ви хочете тут. Має сенс особливо, якщо ви поділяєтесь, наприклад, стандартними речами з інструментами між кількома проектами чи замовниками.
Маркус Мюллер

0

Для цього я використовую кілька репортажів Mercurial (HG) (по одному на проект), але, як зазнає більшість систем управління версіями, репости стають все більшими та більшими.


0

Спробуйте спробувати Кабана . Він розроблений з нуля для обробки величезних файлів і сховищ. Бінарні дані 100 Гб або більше - це не проблема.


0

Я просто хотів би додати посилання на HgInit, відмінний вступ до Mercurial, якщо ви вирішили пройти цей маршрут. Я особисто використовую Git, але вони дуже схожі за архітектурою (обидві є розподіленими системами управління версіями). Розподілений характер їх робить їх чудовими для роботи в добре «розподілених» колективах. :)

http://hginit.com/


Хоча Mercurial є хорошою системою управління джерелами для «чистих» програмних проектів, багато його переваг втрачаються на проектах, які мають суто бінарні файли, оскільки вони не в змозі об'єднати речі. Уроки HgInit не матимуть ніякого сенсу, якщо ви не займаєтесь лише програмним забезпеченням.
whatsisname

0

Здається, OpenPLM пропонує деякі аспекти того, що ви шукаєте, хоча воно, схоже, не знаходиться в активному розвитку ( http://www.openplm.org/trac/discussion/topic/93 ).

Можливо, подивіться на https://discuss.erpnext.com/t/erpnext-git-github-for-open-source-hardware-call-for-beta-user-s/18006 ("ERPNext: Git / Github for Обладнання з відкритим кодом - виклик для бета-користувачів (ів) ")


0

Про це варто подумати для будь-яких описів апаратних засобів ascii. Після прийняття читаного людським описом апаратного забезпечення будь-яка сучасна система контролю ревізії (RCS) працює досить добре. Макети схеми, як правило, повністю описуються файлами Гербера, UML описує інші частини, які є повністю описами ascii. Менш стандартні формати ascii існують для схем, механічного планування тощо (наприклад, KiCAD).

Усиновлення є більш практичним питанням, воно вимагає визнаної вимоги щодо хорошого контролю за переглядом, включаючи змістовне розходження. Що також часто означає відмову від Word, Excel, PowerPoint тощо. Дуже важкий аргумент проти керівників та MBA, але, мабуть, регульовані галузі, такі як Медичні пристрої, Авіація та Військові, вже потребують належного контролю за переглядами.

Як зазначають інші, більшість сучасних RCS буде переглядати керовані бінарні файли, що дуже корисно для архівації та ідентифікації версій - але будь-яка система електронного управління документами (EDMS), наприклад, Agile, може призначити номер ревізії довільному двійковій. Нудно.


0

Хоча це не безкоштовно і навряд чи вільний від помилок, Altium trezor виконує стерлінгову роботу; Я можу легко повернутись до будь-якої точки фіксації (як і будь-який VCS).

У цій області, Altium є шлях попереду преміум (Mentor і Cadence) інструментів.

Я не працюю в Altium, але цей інструмент, незважаючи на поточні проблеми, робить повну версію апаратного забезпечення дуже простою.


І це, мабуть, одне, для чого Сейф хороший ...
Метт Янг

Шлях UNIX; зробіть одне і зробіть це дуже добре.
Пітер Сміт
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.