Excel und Git - geht das? Ja, wenn auch auf Umwegen
Die neue Kolumne «sudo rm -rf /» widmet sich ab heute in unregelmäßigen Abständen Themen aus den unendlichen Weiten des Softwarentwicklungsuniversums. Die erste Instanz erklärt, wie man für Excel eine Versionskontrolle über Git hinbekommt. Denn das funzt, wenn auch über einen kleinen Umweg.
Ich arbeite momentan gerade an einem Tool, das ich vor einigen Jahren in halbfertigem Zustand übernommen und fertigentwickelt habe. Nun steht eine wesentliche funktionale Erweiterung an. Dabei fiel mir auf, dass auch ein umfangreiches Refactoring notwendig ist. Zurzeit hat das Tool noch kein automatisiertes Testing, jede Änderung muss also manuell getestet werden. Schreit das grundsätzlich schon nach Versionskontrolle, so ist dieser Schrei dadurch in der Nähe von Trommelfellzerfetzpotenzial.
Excel und Git scheinen sich nicht zu mögen, eine diesbezügliche Recherche zeigte mir zwar einige interessante Ansätze, teilweise kostenpflichtige Add-Ins. Aber nichts, was mich zufrieden stellte. Den nur mit öffentlichen Repositories verfügbaren Cloud Service habe ich mir ob der Öffentlichkeit gleich gar nicht angesehen. Hier nun Schritt für Schritt meine Lösung, welche nur für Excel-Dateien funktioniert, die bereits auf XML beruhen, zB xlsx- oder xlsm-Dateien:
- Lokale Repository anlegen.
- Mit Git initialisieren, erstes Commit machen und mit einer Online-Repository verbinden (zB bei BitBucket könnt ihr kostenlose private Repositories haben).
- Bei mehr als einer Excel-Datei für jede Datei einen eigenen Unterordner anlegen und die Datei dorthin verschieben. Wenn es nur eine Datei ist, gerne auch im Hauptverzeichnis der Repository ablegen.
- Die Excel-Datei entpacken (ja, die Excel-Dateien im auf XML beruhenden Format sind nichts Anderes als komprimierte Ordner).
- Für jedes Modul, jede Klasse sowie jedes andere Element, in dem sich Code befindet: Aus dem VBA Editor exportieren und in der Repository ablegen.
- Commit durchführen und in die Online-Repository pushen.
- Für jedes neue geplante Commit die entpackten Inhalte löschen und neu entpacken sowie die relevanten Inhalte aus dem VBA Editor neu exportieren. Die Excel-Dateien selbst bleiben dabei immer in nur einer Instanz bestehen, die Erstellung von Kopien ist durch die Versionskontrolle ja nicht mehr notwendig.
Ich habe noch nicht ausprobiert, wie es mit Branches aussieht und dem Merging. Und ich will diesbezüglich vorab keine Einschätzung machen. Falls es irgendwer vor mir ausprobiert, gerne über den Ausgang Bescheid geben. :-) So, nun wende ich mich wieder dem besagten Tool zu, ohne Angst vor dem Refactoring! Bald werde ich eine Möglichkeit für weitgehend automatisiertes Testing für mich evaluieren - sollte ich das gut finden, dann wird daraus ja vielleicht ein weiterer Beitrag. Für heute bleibt nur noch, zumindest in einigen Stunden: sudo rm -rf /
Mehr über Günther Lehner alias Anders Balari:
431verstaerker www.glehner.de TURNOSPERO
Hallo @kultumea, herzlich willkommen auf Steemit.
Wenn Du Fragen zu Steemit hast, oder Dich mit anderen „Steemians“ austauschen magst, schau einfach mal auf unserem Discord-Chat unter https://discord.gg/g6ktN45 vorbei. Mehr Informationen über den deutschsprachigen Discord-Chat findest Du in diesem Beitrag.
Wenn Du auf Deutsch schreibst, verwende immer #deutsch als einen der 5 Hashtags, um Deine Reichweite zu erhöhen.
Unter dem folgenden Link findest Du einige Anleitungen, die Dir den Einstieg in das Steem-Universum deutlich erleichtern werden: Deutschsprachige Tutorials für Steemit-Neulinge: Ein Überblick
Moin @neuvorstellungen und herzlichen Dank für die tollen Infos! Wirkliche Neuankömmlinge sind wir ja nicht, wir haben es bloß einige Monate lange nicht geschafft, Beiträge aus unserem Online-Magazin hier zu spiegeln, was eigentlich der Plan war und immer noch ist. Dieser Beitrag heute erschien mir gut passend, weil mit IT Bezug und daher wieder einmal ein Beitrag hier auf Steemit. Cheers, Günther
Congratulations @kultumea! You received a personal award!
You can view your badges on your Steem Board and compare to others on the Steem Ranking
Vote for @Steemitboard as a witness to get one more award and increased upvotes!