Forum: Mikrocontroller und Digitale Elektronik Software Version Handling und Dokumentation


von Manfred L. (manni)


Lesenswert?

Hallo,

um gleich vorweg kar zu stellen: Ich habe noch nie eine kommerzielle 
Software-Entwicklung durchgeführt. Dies ist nur mein Hobby !

Doch jetzt brauche ich Eure Ratschläge, denn mein uC S/W Projekt wird 
größer und größer, denn es sind schon mehr als 20 uC Boards verbaut und 
jedes Board hat eine andere Software. Ich arbeite mit den ATmegas und 
dem Atmel Studio 6 und schreibe die S/W in C.

Das wäre nicht weiter schlimm, aber wenn jetzt doch mal das eine Board 
umprogrammiert wird, weil sich das andere Board verändert hat, wird es 
langsam grenzwertig.

Und jetzt die Fragen:

1. Wie handhabt ihr es mit der Versions-Verfolgung ?
2. Legt ihr jedesmal ein neues Projekt im Atmel-Studio an oder 
überschreibt ihr das alte einfach in der Hoffnung, man weiß noch welche 
Version in welchem Controller läuft ?
3. Gibt es im Atmel Studio ein hilfreiches Add-On, mit dem man dieses 
Problem lösen kann (habe bisher nichts dergleichen gefunden) ?

Ich bin gespannt auf Eure Vorschläge !

Grüße
Manni

von Strubi (Gast)


Lesenswert?

Was ist mit git?
Um viele verschiedene Varianten zu unterhalten, gibt's kaum was 
effizienteres für den "Quick-hack"-Modus. Wenn du lieber sauber und 
zentral arbeitest (also das nie erreichte Ideal), nimm SVN. Tortoise als 
GUI war zumindest vor ner Weile mal auch den Windows-Anwendern genehm, 
wie das mit Atmel-Studio harmoniert, keine Ahnung.

von derjaeger (Gast)


Lesenswert?

Du kannst SVN benutzen und TAGS anlegen für bestimmte Versionen ..

von c-hater (Gast)


Lesenswert?

Manfred L. schrieb:

> 1. Wie handhabt ihr es mit der Versions-Verfolgung ?

Ich nutze einfach TeamServer von Winzigweich. Weil ich es eh' schon 
habe. Die komfortable Integration in's VS kann man leider für die 
Atmel-Gülle vollkommen knicken, obwohl es auf VS aufsetzt (und damit 
leider auch echte Entwicklungsarbeit im Team), aber die Grundlagen einer 
Versionsverwaltung funktionieren natürlich trotzdem. Man braucht halt 
nur neben dem Atmel-Kram ein weiteres "echtes" VS, über das man die 
Interaktionen mit dem TFS abwickelt. Das Schicke an diesem pragmatischen 
Konzept ist: man kann es auch benutzen, wenn man statt des sinn- und 
planlos aufgeblähten Atmel-Studio das historische AVR-Studio benutzt. 
;o)

Aber klar: Wenn ich nicht sowieso für den meisten Kram VS und TFS 
benutzen würde, hätte ich sicher für die AVR8-Sachen auch eine andere 
Lösung gewählt. Richtig gut würde aber wohl keine laufen, denn die 
unüberwindbare Krux ist, dass dieser Atmel-Kram sowas einfach in 
keinster Weise unterstützt.

Wenn du allerdings deine Entwicklung ohne die Atmel-Tools erledigst, 
dann ergeben sich auch andere Möglichkeiten für die Versionsverwaltung. 
Das bezahlst du aber wiederum mit herben Einbußen für die eigentliche 
Entwicklungsarbeit. Muss man echt nicht haben...

von Manfred L. (manni)


Lesenswert?

Hallo,

erst mal vielen Dank für die Rückmeldungen !!

Ich habe mir das die SVN angesehen, bin aber nicht so richtig zufrieden 
damit, denn meinen S/W Code möchte ich nicht auf irgendwelchen externen 
Servern ablegen. Ich dachte eher in die Richtung auf Directories auf dem 
PC.

So wie ich das sehe und so wie c-hater beschrieben hat, gibt es 
anscheinend kein überzeugendes Konzept einer S/W Version Handling in der 
Atmel Studio 6 Environment.

Ich werde mich dann wohl damit begnügen müssen, jeweils ein neues 
Projekt anzulegen und alles schön durchzunummerieren.

Dank nochmals an Euch !

Manni

von Soeren K. (srkeingast)


Lesenswert?

Manfred L. schrieb:
> Ich habe mir das die SVN angesehen, bin aber nicht so richtig zufrieden
> damit, denn meinen S/W Code möchte ich nicht auf irgendwelchen externen
> Servern ablegen. Ich dachte eher in die Richtung auf Directories auf dem
> PC.

GIT ohne Remote erfüllt deinen Zweck. Backups musst du dann natürlich 
selber machen.

In der Verwendung würdest du dann immer nur comitten und nie pushen.

von Alex (Gast)


Lesenswert?


von Florian S. (sevenacids)


Lesenswert?

Ich würde wegen seiner dezentralen Natur eher zu Git als Subversion 
(SVN) raten, vor allem bei einem relativ kleinen, überschaubaren 
Projekt. Aber anstatt hier einfach ein Versionskontrollsystem 
hinzuklatschen rate ich dem Threadersteller, sich dazu erst mal mit 
deren Konzept und Funktionsweise auseinanderzusetzen. Gibt genügend gute 
Tutorials im Internet. Ansonsten erinnert es an das Prinzip: "Ich 
schmeiß dich mal ins Wasser, sieh zu, wie du schwimmen lernst." Jemand, 
der noch nie damit gearbeitet hat, kann schnell überfordert sein, lernt 
dann hastig ein paar Grundlagen aber nicht den richtigen Umgang damit 
und macht am Ende viel falsch.

von Chlorozote (Gast)


Lesenswert?

Wichtig, ausserhalb, dh zusaetzlich zu der Versionierung...

Den Geraeten Seriennummern geben.

Der Hardware Hardware Versionen geben. Zu jeder Hardware version 
gehoeren Schema und Layout. Sowie einen Beschrieb, was an dieser Version 
gegenueber dem Vorgaenger verbessert wurde, wie, und womit.

Der Firmware Firmware Versionen & Builds geben. Zu Allen ein Beschrieb, 
was die Weiterentwicklung wie, und womit verbessert.

Zu den Seriennummern in einer Liste die Hardware Version, die Firmware 
Version & Build festhalten. Zusaetzlich Messungen, Feststellungen, und 
Wuensche.

von Adam P. (adamap)


Lesenswert?

Manfred L. schrieb:
> denn meinen S/W Code möchte ich nicht auf irgendwelchen externen
> Servern ablegen

Du kannst dir lokal auch dies installieren (SVN Sever):
https://www.visualsvn.com/server/

und dann per Tortoise zugreifen.

Dann hast du es lokal.

von Rolf M. (rmagnus)


Lesenswert?

Manfred L. schrieb:
> Hallo,
>
> erst mal vielen Dank für die Rückmeldungen !!
>
> Ich habe mir das die SVN angesehen, bin aber nicht so richtig zufrieden
> damit, denn meinen S/W Code möchte ich nicht auf irgendwelchen externen
> Servern ablegen.

Wie kommst du darauf, dass du das müsstest? Was du für einen Server 
(intern oder extern) nutzt und ob du überhaupt einen nutzt oder alles 
lokal machst, ist dir überlassen.

> Ich dachte eher in die Richtung auf Directories auf dem
> PC.

Taugt nix. Ein vernünftiges Versionierungstool ist meiner Meinung nach 
essenziell.

von my2ct (Gast)


Lesenswert?

Manfred L. schrieb:
> Ich arbeite mit den ATmegas und dem Atmel Studio 6 und
> schreibe die S/W in C.

Atmel Studio ist doch sowieso angezählt. Denke schon mal über MPLAB X 
nach.

von A. S. (Gast)


Lesenswert?

Investiere einen Tag in tortoise/SVN.

SVN ohne tortoise ist wie ein Compiler ohne IDE, was für Freaks.

Einfach installieren, in einem lokalen Ordner rechte Maustaste und 
"repository erzeugen", schon geht's los, ohne Server.


SW in verschiedenen Versionen ohne SVN (oder andere VCS) ist 
verschwendete Lebenszeit.

Gerade wenn Du allein arbeitest, kannst Du täglich zigmal problemlos 
einchecken: Led blinkt: einchecken. Auch gedimmt: einchecken. Pointer 
Fehler nach 11s: schauen, ob das auch schon in Version blinkt war...

von schotter (Gast)


Lesenswert?

Schau dir mal noch

https://gitea.io/en-us/

an, das ist ein Nachbau von github.com, der allerdings auch lokal 
betrieben werden kann. Egal ob unter Windows, Linux, Mac und x86_64 oder 
arm. Es unterstützt https://git-lfs.github.com/ zum Handhaben von großen 
Binärdateien.

Eine andere github-Alternative ist noch

https://about.gitlab.com/

aber im Vergleich zu gitea ist es richtig langsam.

Grüße,
schotter

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.