Das Konzept der Versionskontrolle ist im Elektronikdesign branchenweit weitgehend standardisiert. Eine Revision besteht in der Regel aus einem Buchstaben und enthält manchmal eine Zahl. Es wurde zwar mit vielen anderen Revisionsschemata experimentiert, allerdings ist die standardmäßige Buchstabenrevision in unserer Branche meiner Erfahrung nach am weitesten verbreitet. Dennoch habe ich mich schon immer gefragt, was mit den ganzen Revisionen dazwischen passiert ist. Ich verstehe, dass eine Änderung im Revisionsbuchstaben für eine Freigabe steht, aber was ist mit all den Änderungen zwischen diesen Versionsfreigaben? Wie werden diese verfolgt?
Versionskontrollsysteme wie CVS, Subversion und Git haben es im Laufe der Zeit ermöglicht, diese Frage zu beantworten. Softwareentwickler sind wahrscheinlich mit Git vertraut, aber auch in der Hardware-Entwicklung bietet es hervorragende Möglichkeiten zur Nachverfolgung von Revisionen sowie zum Forken (Abzweigen) und zur Freigabe von Leiterplattenprojekten. Mit solchen Versionskontrollsystemen ist es möglich, jede Version zwischen den Freigaben anzuzeigen. In Kontinuierliche Integration und Bereitstellung in ECAD haben wir das Konzept der Freigabe einer neuen Version eines Projekts bei jedem Commit erläutert. In diesem Artikel widmen wir uns nun einem einfachen, aber effektiven Weg zur Freigabe über Ihren Git-Server mithilfe der Altium Designer Git-Integration, wobei die Verbindung mit dem Revisionsbuchstaben Ihrer Leiterplatte erhalten bleibt.
Git-Tagging ist eine Funktion in Git, mit der Benutzer einen bestimmten Commit für einen bestimmten Zweck taggen können. Die Benutzer taggen einen Commit, um seine Freigabe anzugeben. Zum Beispiel kann man den dritten Commit im Repository als Revision 1.0.0 taggen, und der zehnte Commit kann dann als Revision 1.1.0 getaggt werden. Es gibt keine richtige oder falsche Art, Tags zu verwenden, aber hauptsächlich wird diese Funktion für das Git-Tagging von Freigabepunkten verwendet.
Ganz gleich, ob Sie verwaltete Projekte in Altium Concord Pro, GitHub, Bitbucket, Gitlab oder auf einem anderen Git-Server verwenden – alle bieten die Möglichkeit, einen Commit zu taggen. Bestimmte Git-Server verfügen über ein eigenes Tagging-System, das über ihre Weboberflächen ausgeführt werden kann, beispielsweise GitHub und Bitbucket. Für andere Git-Server können Sie den Befehl „git-tag“ in der Befehlszeile verwenden. Egal, wie man das Tagging in Git für die Hardware-Entwicklung implementieren möchte: das Team muss ein Revisionsbenennungssystem etablieren, damit jeder versteht, wie die verschiedenen Versionen miteinander in Beziehung stehen.
Während die ECAD-Community zu einem Versionskontrollsystem wie Git migriert, ist es wichtig, die Verknüpfung zwischen Git und dem uns allen vertrauten Freigabeprozess beizubehalten. Oftmals wird mit der Frage gerungen, wie man seine Commits am besten in einem Versionskontrollsystem beibehalten kann und sich gleichzeitig die Freiheit bewahrt, ein offizielles Paket zum Versand (oder zur späteren Überprüfung) an Lieferanten zusammenzustellen. Dafür gibt es viele Möglichkeiten. Hierbei ist der Freigabeprozess nicht unbedingt eine Einheitslösung, aber ich würde empfehlen, ihn als Grundlage auszuprobieren und dann an die jeweiligen Anforderungen Ihrer Gruppe anzupassen.
Die größte Herausforderung besteht darin, alle Git-Commits zu verstehen und diese mit einem Freigabepaket zu verknüpfen. Hier ist ein Beispiel dafür, wie eine Reihe von Git-Commits in GitHub aussieht:
Wie Sie sehen können, gibt es viele Commit-Kommentare, die Designänderungen beschreiben, und andere Commit-Kommentare, die eine „offizielle Freigabe“ ankündigen. Viele Benutzer von Versionskontrollsystemen machen das so, und es funktioniert im Allgemeinen gut. Ich habe auch schon gesehen, dass Benutzer Freigabepakete im Repository gebündelt haben. Dies ist zwar nicht die sauberste Lösung (da so das Repository mit Dateien vermengt wird, die nichts mit dem Design zu tun haben). Dennoch ist sie zweckdienlich.
Anstatt Ihre offizielle Version in einem Commit-Kommentar bekanntzugeben, können wir das Konzept des Git-Tagging verwenden (in GitHub auch als „Releases“ (Freigaben) bezeichnet). In diesem Beispiel haben wir diese offiziellen Freigabe-Commits in die Freigaben in GitHub übernommen (die auch zu Tags werden):
Wie Sie oben sehen können, haben wir bestimmte Commits genommen und daraus Freigaben gemacht. GitHub hängt nun ein Tag an jeden dieser Commits an, und zwar folgendermaßen:
Und schließlich können wir jetzt in GitHub nach einer Freigabe oder einem Tag suchen:
Eine weitere Möglichkeit, die korrekte Verknüpfung zwischen Ihrem Leiterplattenprojekt und dem Git-Repository sicherzustellen, besteht darin, den Git-Hash in Ihrem Schaltplan selbst zu verfolgen. Das ist ein kleiner Trick, den John Watson mir gezeigt hat, als wir noch mit Subversion gearbeitet haben. Durch die Verwendung spezieller Strings kann man seinen Schaltplan (und seine Leiterplatte) direkt mit dem Git-Commit verknüpfen, in denen sie auf den Git-Server gepusht werden. In diesem Beispiel haben wir den Versionskontrollstring direkt im Titelblock auf dem Schaltplan der obersten Ebene platziert:
Wie Sie oben sehen können, werden zwei Versionen des Git-Hashs im Schaltplan dargestellt: der erste ist der vollständige Git-Hash und der zweite ist die verkürzte Version (wie sie auch in GitHub verwendet wird). Um den Hash mit voller Länge zu benutzen, habe ich den folgenden speziellen String eingegeben:
=VersionControl_ProjFolderRevNumber
Wenn Sie dies mit dem Titel vor dem String verketten möchten, müssen Sie Folgendes hinzufügen:
=’Git Hash:’ + VersionControl_ProjFolderRevNumber
Beim Schreiben dieses Artikels wurde jedoch festgestellt, dass dieser spezielle String zu lang war, um ihn zu verketten. Dieses Problem lässt sich umgehen, indem man VersionControl_ProjFolderRevNumber auf einen kürzeren Parameter setzt. Hier wurde ein Parameter erstellt und im Properties Panel für diesen spezifischen Schaltplan gleich VersionControl_ProjFolderRevNumber gesetzt.
Nachdem Sie nun einen verkürzten Parameter erstellt haben, können wir den String bearbeiten. In diesem Fall wollen wir nur die ersten 7 Zeichen des Git-Hashes, genauso wie GitHub seine Git-Hashes anzeigt. Wir verwenden die folgende verkettete und manipulierte spezielle String-Anweisung:
='Git Hash: ' + Copy(GitHash,1,7)
Beachten Sie, dass alle verwendeten Funktionen zur Bearbeitung von Strings aus der Sprache Delphi stammen. Die Teilstring-Technik ist ein einfacher Copy-Funktionsaufruf von Delphi, der in den Textstring eingebettet ist. Sobald Sie oder Ihr Team Design-Dokumente aus einem Git-Release in Altium Designer öffnen, sehen sie das Tag darin, das einen konkreten Link zur kontrollierten Revision enthält.
Da die Industrie beginnt, Revisionen in Git für die Hardware-Entwicklung zu verwenden, sowohl lokal als auch in der Cloud, ist es wichtig, die Verbindung zwischen der offiziellen Leiterplatten-Designfreigabe und dem tatsächlichen Git-Commit (Hash) zu verstehen, der im Versionskontrollsystem existiert. Mit dem Konzept des Git-Hashings und der Nutzung dieser Funktion bei der Freigabe eines Leiterplatten-Designprojekts innerhalb eines Versionskontrollsystems kann diese Verbindung aufrechterhalten und die beiden Prozesse (oder Systeme) synchron gehalten werden.
Anstatt ein Versionskontrollsystem eines Drittanbieters zu verwenden, können Sie Git für die Hardware-Entwicklung mit Altium Designer und der Altium-365-Plattform implementieren. Dieses System ersetzt eine cloudbasierte Git-Lösung für die Versionskontrolle und ermöglicht Ihrem Team den sofortigen Import von Projekten in Altium Designer. Alternativ können Sie Altium Concord Pro auch lokal implementieren und Ihrem Team damit ein komplettes Set von Versionskontroll- und Datenmanagementfunktionen zur Verfügung stellen, die sich mit Altium Designer integrieren lassen.
Altium Designer auf Altium 365 bietet der Elektronikindustrie eine beispiellose Integration, die bisher der Welt der Softwareentwicklung vorbehalten war. So können Designer von zu Hause aus arbeiten und ein noch nie dagewesenes Maß an Effizienz erreichen.
Wir haben nur ganz oberflächlich behandelt, was mit Altium Designer auf Altium 365 möglich ist. Besuchen Sie die Produktseite für eine detaillierte Beschreibung der Funktionen oder nehmen Sie an einem unserer On-Demand-Webinare teil.