Was sind einige der guten Versionssysteme für Hardwareprojekte? Gibt es Entsprechungen zu Google Code, CVS und SVN? Sind solche Versionskontrollsysteme für Hardwareprojekte mit PCB-Dateien, Schaltplänen (auch Firmware-Code) geeignet?
Was sind einige der guten Versionssysteme für Hardwareprojekte? Gibt es Entsprechungen zu Google Code, CVS und SVN? Sind solche Versionskontrollsysteme für Hardwareprojekte mit PCB-Dateien, Schaltplänen (auch Firmware-Code) geeignet?
Antworten:
Grundsätzlich können alle VCS-Systeme problemlos mit Text- und Binärdateien umgehen. Natürlich können Sie keine binären zusammenführen.
Solange Sie keine veralteten Dinge wie CVS verwenden, sind Sie mit JEDEM System gut vertraut.
Ich habe Subversion schon einmal mit Altium verwendet. Es hat erfolgreich funktioniert, aber zu der Zeit war es aufgrund des Fehlens eines Diff-Tools weniger nützlich als die Versionskontrolle mit Code. Ich denke immer noch, es hat sich gelohnt, auch ohne Diff-Fähigkeit.
Für Firmware sind Subversion oder Git beide großartig. Wenn Sie Git noch nicht benutzt haben, probieren Sie zuerst Subversion aus (auch wenn es später schwieriger wird, Git zu lernen).
Altium hat kürzlich ein Diff-Tool für Schaltpläne und Leiterplatten eingeführt. Daher erwarte ich, dass Subversion jetzt großartig ist und den üblichen Wahnsinn moduliert, den EDA-Anbieter in ihre Produkte einbauen können.
Ich wollte das mit dem neuen Diff-Tool ausprobieren. Wenn ich das tue, werde ich versuchen, mich daran zu erinnern, hier als Beispiel einen Link zum Repo zu posten.
Aktualisieren
Ich habe es ausprobiert und muss sagen, dass ich mit dem Altium Diff-Tool ein wenig unterfordert bin. Es funktioniert, aber die Änderungen zwischen den Board-Umdrehungen sind so umfangreich, dass es zumindest für mich nicht so nützlich ist. Nachdem ich das gesehen habe, habe ich beschlossen, das Diff-Tool zu vergessen und nur Github zu verwenden. Hier ist das Repo, wenn Sie interessiert sind: https://github.com/rascalmicro/pcb
svn cp trunk/ tags/releaseX/
Sie diese Option, um eine Momentaufnahme der Version zu erstellen. Sie können dann releaseX / file und releaseY / file unterscheiden, wenn Sie Änderungen zwischen Releases anzeigen möchten, oder Sie können die Festschreibungsprotokolle durchsuchen und einzelne Änderungen anzeigen. Niederlassungen tragen zur Modularisierung der Commit-Flut bei.
Ich verwende Google Code, um Super OSD zu hosten , ein Elektronikprojekt von mir.
Ich verwende ausschließlich die gEDA-Suite, um meine Schaltpläne und Leiterplatten zu verwalten. Nützlicherweise erzeugt gEDA Textdateien (die meistens von Menschen gelesen werden können, obwohl es schwierig ist, sie zu interpretieren) für die Schaltpläne anstelle von binären Blobs wie Eagle. Zum Beispiel ist dies ein Unterschied zwischen zwei Schaltplänen , einem ungefähr 5 Tage alten und einem, den ich gerade gepusht habe. Dies ist nicht besonders nützlich, da in Textdateien nicht viele Änderungen sichtbar sind. Es kann jedoch relative Änderungen anzeigen, dh massive Überarbeitungen im Vergleich zu Änderungen einzelner Komponenten, und Sie können auf frühere Versionen zurückgreifen.
Der Trick besteht darin, etwas zu verwenden, das mit Binärdateien gut funktioniert. Wenn Sie Binärdateien häufig verwenden und sie mit anderen teilen, kann es hilfreich sein, einen Sperrmechanismus für diese Binärdateien zu implementieren. Wir haben viele Probleme mit der Verwendung von Subversion für Binärdateien und dem Teilen mit anderen, die aufgrund fehlender Sperrsemantik und des Überschreibens / Zusammenführens von Binärdateien entstanden sind. Das Hinzufügen eines Sperrmechanismus für diese Dateien beseitigt menschliche Kommunikationsfehler bei der Bearbeitung / Änderung der Binärdatei.
Wenn Sie die Versionskontrolle noch nicht verwendet haben, empfehle ich, sich über die verschiedenen Funktionsweisen zu informieren und eine auszuwählen, die Ihren Anforderungen entspricht und mit denen Sie und / oder Ihr Team vertraut sind. Verteilte Versionskontrollsysteme bieten viele Vorteile gegenüber Client-Server-Systemen, sind jedoch in der Regel komplizierter zu handhaben.
Warum nicht einfach Google Code oder ein SVN-Repo verwenden? Da dies ein Revisionskontrollsystem ist. Es gibt keine definierte Verwendung dafür. Es ist einfach unglaublich nützlich für mehrere Entwickler und das Überwachen von Änderungen im Quellcode.
Ich habe Subversion schon einmal mit Altium verwendet.
Ich verwende SVN mit Altium-Integration für die schematische Erfassung: Es funktioniert gut. Ich muss sagen, dass der Diff-Viewer besser ist als nichts zu haben, weil meine SchDoc-Dateien binär sind, dh anders nicht zu vergleichen! Ich verwende den in Altium Designer integrierten SVN-Client problemlos parallel zu TortoiseSVN. Der Client von Altium ist in Bezug auf die SVN-Funktionen etwas eingeschränkt. Ich mache meine "Tags" mit Tortoise.
Meine Meinung basiert auf Altium Designer 10 Build 27009 und Version 13.1 Build 27559.
Kein echtes Versionskontrollsystem, aber Dropbox verwaltet auch die Überarbeitung von Dateien und macht sie für verschiedene Benutzer auf verschiedenen Betriebssystemen verfügbar. - Versionskontrollsystem für arme Männer;)
Ich war am vergangenen Wochenende auf der Maker Faire in San Mateo und habe ein paar Vertreter einer neuen (für mich) Firma namens Up-Verter getroffen . Sie erstellen im Grunde genommen ein elektrisches CAD-Tool, das in der "Cloud" (dh in Ihrem Browser) ausgeführt wird und konzeptionell auf der Zusammenarbeit basiert. Daher sollten sie sich mit Merge / Diff und den üblichen Versionssachen befassen.
Ich habe es noch nicht ausprobiert und es sieht immer noch ein bisschen grün aus (glaube nicht, dass man das PCB-Layout tatsächlich noch machen kann, nur Schaltpläne), aber es ist irgendwie faszinierend. Sie behaupteten, sie könnten Eagle-Dateien importieren, was ein Plus ist.
Ich habe auch mit den Eagle-Vertretern im Element 14-Zelt gesprochen, und sie gaben an, dass sie auf ein XML-Format umsteigen, was ein großer Schritt ist, um die Versionierung von Schaltplänen und Layouts plausibler zu machen ... alles interessante Fortschritte auf diesem Gebiet !
Altium gute Nachricht!
Altium hat die Git-Control-Version unterstützt, wie Sie in den Versionshinweisen für Altium Designer sehen können .
Informationen zur Verwendung finden Sie in diesem Handbuch zur Versionskontrolle .
Das ist in der Tat eine sehr gute Frage. Da FPGAs in die Kategorie "Hardware" fallen, könnte Sie eine versionskontrollfreundliche Projektstruktur interessieren, die ich für FPGA-Projekte vorschlage:
http://www.saardrimer.com/fpgaproj/
Ich denke, die Ideen und Konzepte könnten leicht auf andere Hardwareprojekte und allgemein angewendet werden. (Kommentare zu diesem Vorschlag sind übrigens sehr willkommen.)
Vermeiden Sie Schwachsinn. Große Repositories werden nicht gut verarbeitet. Und Ihre Repositories werden groß, es sei denn, Sie
Du solltest es mit Boar versuchen . Es wurde von Grund auf für die Verarbeitung großer Dateien und Repositorys entwickelt. 100 GB oder mehr Binärdaten sind kein Problem.
Ich möchte nur einen Link zu HgInit hinzufügen, einer hervorragenden Einführung in Mercurial, wenn Sie sich für diesen Weg entscheiden. Persönlich benutze ich Git, aber sie sind sehr ähnlich in Bezug auf die Architektur (beide sind verteilte Versionskontrollsysteme). Aufgrund ihrer Verteilung eignen sie sich hervorragend für die Arbeit in gut verteilten Teams. :)
OpenPLM bietet anscheinend einige Aspekte dessen, wonach Sie suchen, obwohl es sich anscheinend nicht in der aktiven Entwicklung befindet ( http://www.openplm.org/trac/discussion/topic/93 ).
Vielleicht werfen Sie einen Blick auf https://discuss.erpnext.com/t/erpnext-git-github-for-open-source-hardware-call-for-beta-user-s/18006 ("ERPNext: Git / Github for Open Source Hardware - Aufruf für Beta-Benutzer ")
Dies lohnt sich für alle ASCII-Beschreibungen von Hardware zu überlegen. Sobald eine vom Menschen lesbare Beschreibung für die Hardware übernommen wurde, funktioniert jedes moderne Versionskontrollsystem (RCS) ziemlich gut. Schaltungslayouts werden in der Regel vollständig von Gerber-Dateien beschrieben, UML beschreibt andere Teile, bei denen es sich um vollständige ASCII-Beschreibungen handelt. Für Schaltpläne, mechanisches Layout usw. gibt es weniger Standard-ASCII-Formate (z. B. KiCAD).
Adoption ist eher ein praktisches Problem, es erfordert eine anerkannte Anforderung für eine gute Revisionskontrolle, einschließlich eines aussagekräftigen Unterschieds. Was auch oft bedeutet, auf Word, Excel, PowerPoint usw. zu verzichten. Ein sehr schwieriges Argument gegen Manager und MBAs, aber wohl regulierte Branchen wie Medizinprodukte, Luftfahrt und Militär erfordern bereits eine gute Revisionskontrolle.
Wie bereits erwähnt, können die meisten modernen RCS-Versionen Binärdateien überarbeiten, was für die Archivierung und Identifizierung von Versionen sehr nützlich ist. Jedes elektronische Dokumentenverwaltungssystem (EDMS), z. B. Agile, kann jedoch einer beliebigen Binärdatei eine Überarbeitungsnummer zuweisen. Langweilig.
Obwohl es nicht kostenlos und kaum fehlerfrei ist, leistet Altium Vault hervorragende Arbeit. Ich kann sehr einfach zu jedem Festschreibungspunkt zurückkehren (so wie es jedes VCS tun sollte).
In diesem Bereich ist Altium den Premium-Tools (Mentor und Cadence) weit voraus.
Ich arbeite nicht für Altium, aber dieses Tool macht die vollständige Hardwareversionierung trotz der aktuellen Probleme sehr einfach.