Donanım projeleri için versiyon kontrol sistemleri?


59

Donanım projeleri için iyi versiyonlama sistemlerinden bazıları nelerdir? Eşdeğer Google Kodu, CVS ve SVN var mı? Bu tür sürüm kontrol sistemleri, PCB dosyalarını, şemaları (donanım yazılımı kodu) içeren donanım projeleri için uygun mudur?


5
Harika soru! Cevaplarda yer alan bazı depo örneklerini görmek isterim.
Tyblu

+1 HW projelerinin kaynak kontrolünden yararlanabileceğini kabul etmek için. Beraber çalıştığım adamlar bunu farketmekte zorlanıyorlar.
Nate

1
Bir süredir devre kartlarını sürümlemek için Mercurial'ı kullanıyorum ve birkaç kez kıçımı kurtardı. Kesinlikle iyi bir fikir.
Stephen Collings

1
EDA için GEDA araç takımını kullanıyorum ve gitmekte olan şeyleri takip ediyorum. Kısa bir süre önce, otomatik olarak değiştirilmiş şema veya PCB'lerin .png görüntülerini üreten ve bunları çalışmaya ekleyen bazı git kancaları yazdım. Bu GitHub'ın resim farkından faydalanmamı sağlıyor. PCB ve gschem ayrıca, yerel olarak benzer bir şey yapan git ile çalışan yerel diff araçlarına sahiptir. Kancalarım burada: github.com/BenBergman/.git_hooks Bunları kullanan örnek proje: github.com/BenBergman/uJoypad
ben

Yanıtlar:


27

Temel olarak, tüm VCS sistemleri metin ve ikili dosyaları incelikle ele alabilir. Tabii ki ikili olanları birleştiremezsiniz.

CVS gibi eski şeyleri kullanmadığınız sürece HERHANGİ bir sistemde iyi olacaksınız.


3
Tüm projelerimde CVS kullanıyorum (yazılım ve donanım, PCB, bellenim, araçlar vb.) Ve sorunum yok. Tabii ki, CVS eski, ancak 20 yıllık bir proje geçmişim var ve depolarımı Mercurial veya SVN'ye taşımak için herhangi bir dönüştürücü kullanamadım.
Axeman

12
Öyleyse pragmatik bir yöntem eski şeyleri CVS'de bırakmak ve yeni sisteme yeni şeyler koymak ...
Johan

CVS şu an üzerinde çalıştığım bir proje için kilitlediğim Microsoft Visual Source Safe korku ile karşılaştırıldığında güzel bir sistem. Blech.
Kevin Vermeer

@Kevin Vermeer İki "birbiriyle hoş olmayan" şeyi birbiriyle karşılaştırırken ölçeğin olumsuz tarafında olduğunuzu biliyorsunuz;)
Johan

@KevinVermeer, versiyon kontrol dünyasının bir kaynağı olan sourcesafe kullanmak zorunda kaldım. Son patronum bu yüzden sürüm kontrolünün tamamen ihmal edilmesine izin verdi.
Kortuk

17

Subversion'u daha önce Altium ile birlikte kullandım. Başarılı bir şekilde çalıştı, ancak bir diff aracının olmayışı, sürüm kontrolünün kodda olduğundan daha az kullanışlı olmasını sağladı. Yine de, farklı yetenekler olmadan bile, yapmaya değdiğini düşünüyorum.

Firmware için Subversion veya Git'in ikisi de harika. Git'i daha önce kullanmadıysanız, önce Subversion'u deneyin (Git'i daha sonra öğrenmeyi zorlaştırsa bile).

Altium geçtiğimiz günlerde şemalar ve PCB'ler için farklı bir araç ortaya çıkardı, bu yüzden Subversion'un şimdiden harika olacağını umuyorum, EDA üreticilerinin ürünlerini oluşturmayı başarabildikleri olağan deliliğin modulo'su.

Bunu yeni fark aracıyla denemek istedim; yaparsam, örnek olarak burada repoya bir link göndermeyi hatırlamaya çalışacağım.

Güncelleme

Bunu denedim ve biraz Altium diff aracıyla iç içe olduğumu söylemeliyim. İşlevsel, ancak yönetim kurulu devirleri arasındaki değişiklikler, en azından benim için o kadar da faydalı olmayacak kadar önemli. Bunu gördükten sonra, diff aracını unutmaya ve sadece Github'ı kullanmaya karar verdim. İşte ilgileniyorsanız repo: https://github.com/rascalmicro/pcb


Entegre SVN GUI'yi (Altium ile) veya harici bir şey mi kullandınız?
Nick T,

En yeni SVN özellikli Altium, her ne kadar PCB / şematik revizyonların kodlarda olduğu kadar kritik olmadıklarını da ekleyeceğim. 3-4'ten fazla maksimum şematik / PCB sürümü ile uğraşıyorsanız, muhtemelen tasarım veya ihtiyaç aşamalarında çok yanlış bir şeyi gözden geçirin.
Mark

@Mark: Release 10 beta veya Yaz 09’dan mı bahsediyorsunuz?
Nick T,

2
Yönetim Kurulu devirleri arasındaki değişiklikler yararlı olmadığı kadar önemliyse, yeterince sık taahhütte bulunmazsınız. Erken taahhüt, sık sık taahhüt! Tahta devirlerini izlemek için etiketleri kullanın.
Kevin Vermeer

3
SVN kullanıyorum ve kesinlikle faydalı. Sistemim şudur: kaydet düğmesine bastım, büyük olasılıkla bir taahhütte bulunmalıyım. Değişiklikleri "Kütüphaneye X bölümü eklendi" veya "I2C ve SPI veri yollarına eklenen test pedleri" gibi taahhüt mesajlarını okuyarak izliyorum. İmalat için gönderilen sürümler tamamen farklıdır, svn cp trunk/ tags/releaseX/sürümün anlık görüntüsünü almak için kullanın . Daha sonra, sürümler arasındaki değişiklikleri görmek istiyorsanız, releaseX / file ve releaseY / file'ları dağıtabilir veya taahhüt günlüklerine göz atabilir ve bireysel değişiklikleri görebilirsiniz. Branşlar, taşkın selinin modüle edilmesine yardımcı olmaktadır.
Kevin Vermeer

10

VisualSVN Server + TortoiseSVN istemcisini kullanıyorum ve gayet iyi çalışıyor


7

Elektronik Kod projem olan Super OSD'yi barındırmak için Google Code kullanıyorum .

Yalnızca şemalarımı ve PCB'leri yönetmek için gEDA takımını kullanıyorum. Faydalı bir şekilde, gEDA, Eagle gibi ikili bloblar yerine, şemalar için metin dosyaları (çoğunlukla insan tarafından okunabilir, ancak bunları yorumlamak zor olsa da) üretir. Örneğin, bu iki şema arasındaki farktır , biri yaklaşık 5 günlük diğeri ise yeni bastırdım. Metin dosyalarında pek fazla değişiklik göremediğiniz için özellikle kullanışlı değildir, ancak göreceli bir değişiklik gösterebilir - yani büyük yeniden işleme, tek bileşenli değişiklik - ve önceki sürümlere geri dönmenize izin verir.


3
Dosyalar için metin tabanlı biçimlerin kullanımı için +1. Disk alanı ucuzdur ve metnin sıkıştırılması kolaydır. İkili damlaların daha az yaygın olmasını diliyorum.
Kevin Vermeer

4

İşin püf noktası, ikili dosyalarla iyi çalışan bir şey kullanmaktır. İkili dosyalar çok kullanıyorsanız ve başkalarıyla paylaşıyorsanız, bu ikili dosyalar üzerinde bir kilitleme mekanizması uygulamak yararlı olabilir. İkili dosyalar ile Subversion kullanma ve semantiği kilitleme ve ikili dosyaları bir arada yazma / birleştirme eksikliği nedeniyle ortaya çıkan diğer kişilerle paylaşma konusunda birçok sorunla karşılaştık. Bu dosyalar üzerinde bir kilitleme mekanizması eklemek, ikili dosyayı düzenleyen / değiştiren iletişimdeki insan hatasını ortadan kaldırır.

Sürüm kontrolünü daha önce kullanmadıysanız, çalıştıkları farklı yolları okumanızı ve sizin ve / veya ekibinizin rahat edebileceği ihtiyaçlarınızı karşılamak için birini seçmenizi tavsiye ederim. Dağıtılmış sürüm kontrol sistemleri, istemci-sunucu sistemlerine göre birçok avantaj sağlar, ancak çalışmak için daha karmaşık olma eğilimindedir.


3

Neden sadece Google Kodunu veya bir SVN deposunu kullanmıyorsunuz? Bu bir revizyon kontrol sistemidir. Bunun için tanımlanmış bir kullanım yoktur. Birden fazla geliştirici ve kaynak koddaki değişiklikleri izlemek için inanılmaz derecede kullanışlıdır.


1
Bunu yaptınmı? İkili dosyaların SVN veya Mercurial'a yerleştirilmesi benim için çok iyi oldu.
Tyblu

2
Hayır, sadece kaynak kodu için değil SVN kullandım. PDF'ler ve .txt dosyaları gibi şeyler.
Dekan

2
@Tyblu ne demek korkunç demek? Ben şematik ve düzen dosyaları ile yaptım ve onun yıkılması ile benim için harika çalıştı.
Kellenjb

Mercagial ile EAGLE dosyalarındaki değişiklikleri izleyemiyorum. Tüm dosya farklı görünüyor. Bakabileceğim bir havuz var mı?
tyblu

5
@tyblu bu yüzden dosyalarınızı kontrol ederken yorum ekleyeceksiniz :)
vicatcu

3

Subversion'u daha önce Altium ile birlikte kullandım.

Şematik yakalama için Altium entegrasyonu ile SVN kullanıyorum: iyi çalışıyor. Diff görüntüleyicinin hiçbir şey yapmamaktan daha iyi olduğunu söylemeliyim, çünkü SchDoc dosyalarım ikili, yani başka türlü karşılaştırmak imkansız! Altium Designer'a entegre SVN istemcisini TortoiseSVN ile paralel olarak sorunsuz şekilde kullanıyorum. Altium'un müşterisi, SVN özellikleri açısından biraz sınırlıdır. "Etiketler "imi Tortoise ile yapıyorum.

Bence Altium Designer 10 build 27009 ve sürüm 13.1 build 27559'a dayanıyor.



1

Gerçek bir sürüm kontrol sistemi değil, Dropbox da dosyaların revizyonunu yapar ve farklı işletim sistemlerinde farklı insanlar için kullanılabilir olmasını sağlar. - yoksul adamın versiyon kontrol sistemi;)


2
Daha önce ekiplerle çalışan biri olarak: Lütfen bunu yapmayın. Dropbox fakir bir adamın versiyon kontrol sistemi değil . Dosya paylaşım / arşiv sistemi. Gerçekten daha kullanışlı olması için git'i tam anlamıyla kullanmak zorunda değilsiniz! Dropbox, CVS'nin bile doğru yaptığı her şeyi yanlış yapar (yeni revizyonlarla nasıl başa çıkılır, değişikliklerin nasıl değiştirileceği, belirli revizyonların nasıl işaretleneceği), bu gerçekten bir sürüm kontrol sistemi değildir .
Marcus Müller

1

Geçtiğimiz hafta sonu San Mateo'daki Maker Faire'deydim ve Up-Verter adındaki yeni (benim için) bir şirketin bazı temsilcileriyle tanıştım . Temel olarak "bulutta" çalışan (yani tarayıcınızda) elektrikli bir CAD aracı inşa ediyorlar ve kavramsal olarak işbirliği içinde inşa ediyorlar, bu nedenle birleştirme / fark ve normal versiyonlama şeyleriyle ilgilenmeliler.

Henüz denemedim ve hala biraz yeşil görünüyor (aslında henüz pcb düzeni yapabileceğinizi düşünmeyin, sadece şemalar), ama bu biraz merak uyandırıcı. Bir artı olan Eagle dosyalarını içe aktarabileceklerini iddia ettiler.

Ayrıca, Element 14 çadırındaki Eagle temsilcileriyle de konuştum ve bir şematik biçimine geçtiklerini belirttiler. !



0

Bu gerçekten çok iyi bir soru. FPGA'lar "donanım" kategorisine girdiğinden, FPGA projeleri için önerdiğim sürüm kontrolü dostu bir proje yapısıyla ilgilenebilirsiniz:

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

Fikirlerin ve kavramların diğer donanım projelerine ve genel olarak kolayca uygulanabileceğini düşünüyorum. (Bu teklifle ilgili yorumlarınızı bekliyoruz, btw.)


2
Bağlantı artık çalışmıyor.
tyblu

0

Gitten kaçının. Büyük depoları iyi işlemez. Siz depolarsanız depolarınız da büyüyecek

  1. İkilik şematik dosyalara sahip olduklarında ancak bir miktar değiştiklerinde
  2. İkili dosyalara metin olarak işlem yap özelliğini açın.

3
Pekala ... Proje başına bir repo olmak üzere birçok küçük repo'nuz olmalı.
Johan

1
@Johan - ...... Evet .... Bu bakım kabusu için iyi şanslar. Her neyse, birçok alt projede, müşteri başına 1 repo (şimdi yaklaşık 4, depo,) var ve oldukça iyi çalışıyor. SVN, en azından çok fazla sorun yaşamadan 5+ GB ikili veriyi idare edebiliyor gibi görünüyor.
Connor Wolf

1
@ConnorWolf Bunu nasıl yaptığını duymak isterim. Proje başına bir Git deposu yapıyoruz ve hiç problem yaşamadık. Proje başına tek bir havuza sahip olmamak bana bir bakım kabusu gibi geliyor.
Matt Young,

1
SVN, en azından (muhtemelen git de) ikilik farkları saklıyor gibi görünüyor, bunun yerine bir dosyanın kopyalarını tamamlıyor, bu yüzden etkileyici bir yer tasarrufu sağlıyor.
Connor Wolf,

1
@ConnorWolf re: bakım kabusu: 8 yıl sonra: git-submodules muhtemelen burada istediğin şey. Özellikle birden fazla proje veya müşteri arasında standart takım şeylerini paylaşıyorsanız, anlamlıdır.
Marcus Müller

0

Bunun için çoklu Mercurial (HG) repoları (proje başına bir tane) kullanıyorum ancak çoğu Sürüm Kontrol Sisteminin deneyimleyeceği gibi, repolar daha da büyüyor.


0

Domuzu denemelisin . Büyük dosya ve depoları işlemek için temelde tasarlanmıştır. 100 GB veya daha fazla ikili veri sorun değil.


0

HgInit'e bir link eklemek istiyorum, eğer o rotaya gitmeye karar verirseniz Mercurial için mükemmel bir giriş. Şahsen Git'i kullanıyorum, ancak mimari açıdan çok benzerler (ikisi de dağıtılmış sürüm kontrol sistemleridir). Dağınık doğası, onları "dağıtık" ekipleri olarak iyi çalışmaları için harika kılar. :)

http://hginit.com/


Mercurial, 'saf' yazılım projeleri için iyi bir kaynak kontrol sistemi olmasına rağmen, avantajlarını birçoğu, şeyleri mantıklı bir şekilde birleştiremediğinden, tamamen salt ikili dosyalar ile ilgilenen projelerde kaybedilir. HgInit'in dersleri, yalnızca yazılım yapmadığınız sürece bir anlam ifade etmeyecek.
whatsisname,


0

Bu, donanımın asi açıklamaları için düşünmeye değer. Donanım için okunabilir bir açıklama yapıldıktan sonra, herhangi bir modern revizyon kontrol sistemi (RCS) oldukça iyi çalışıyor. Devre düzenleri tipik olarak Gerber dosyaları tarafından tam olarak tanımlanmaktadır, UML, tamamen ayrıntılı açıklamaları olan diğer parçaları açıklamaktadır. Şemalar, mekanik düzenler vb. İçin daha az standart ASCI formatları mevcuttur (örneğin KiCAD).

Evlat edinme daha pratik bir konudur, anlamlı bir fark da dahil olmak üzere iyi revizyon kontrolü için kabul edilmiş bir gereklilik gerektirir. Bu da genellikle Word, Excel, PowerPoint, vb. Vazgeçmek anlamına gelir. Yöneticiler ve MBA'lere karşı çok zor bir tartışma, ancak Tıbbi Cihazlar, Havacılık ve Askeri gibi tartışmalı bir şekilde düzenlenmiş endüstriler zaten iyi revizyon kontrolü gerektiriyor.

Diğerlerinin de belirttiği gibi, çoğu modern RCS, sürümleri arşivlemek ve tanımlamak için çok yararlı olan ikili dosyaları kontrol eder, ancak örneğin Agile, herhangi bir elektronik doküman yönetim sistemi (EDMS) keyfi bir ikiliye bir revizyon numarası atayabilir. Sıkıcı.


0

Her ne kadar ücretsiz olmasa ve neredeyse hiç hatasız olmasa da, Altium kasası sterlini yapıyor; Kolayca herhangi bir taahhüt noktasına geri dönebilirim (tıpkı herhangi bir VCS'nin yapması gerektiği gibi) çok kolay.

Bu alanda, Altium olduğu yolu ileride prim (Mentor ve Cadence) araçları.

Ben do not Altium için çalışmak ancak bu araç, güncel konulara rağmen, çok basit sürüm tam donanım olun.


Ve bu muhtemelen Vault'un iyi olduğu tek şey ...
Matt Young

UNIX yolu; bir şey yap ve çok iyi yap.
Peter Smith
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.