Thomas Hirt
Einführung in Codeversionierungssysteme
FileMaker Konferenz 2015 Hamburg
www.filemaker-konferenz.com
Einführun...
Thomas Hirt
Einführung in Codeversionierungssysteme
FileMaker Konferenz 2015 Hamburg
www.filemaker-konferenz.com
Inhalt
• ...
Thomas Hirt
Einführung in Codeversionierungssysteme
FileMaker Konferenz 2015 Hamburg
www.filemaker-konferenz.com
Was ist e...
Thomas Hirt
Einführung in Codeversionierungssysteme
FileMaker Konferenz 2015 Hamburg
www.filemaker-konferenz.com
kurze Ges...
Thomas Hirt
Einführung in Codeversionierungssysteme
FileMaker Konferenz 2015 Hamburg
www.filemaker-konferenz.com
kurze Ges...
Thomas Hirt
Einführung in Codeversionierungssysteme
FileMaker Konferenz 2015 Hamburg
www.filemaker-konferenz.com
Workflow ...
Thomas Hirt
Einführung in Codeversionierungssysteme
FileMaker Konferenz 2015 Hamburg
www.filemaker-konferenz.com
kurze Ges...
Thomas Hirt
Einführung in Codeversionierungssysteme
FileMaker Konferenz 2015 Hamburg
www.filemaker-konferenz.com
Workflow ...
Thomas Hirt
Einführung in Codeversionierungssysteme
FileMaker Konferenz 2015 Hamburg
www.filemaker-konferenz.com
zentralis...
Thomas Hirt
Einführung in Codeversionierungssysteme
FileMaker Konferenz 2015 Hamburg
www.filemaker-konferenz.com
Subversio...
Thomas Hirt
Einführung in Codeversionierungssysteme
FileMaker Konferenz 2015 Hamburg
www.filemaker-konferenz.com
Subversio...
Thomas Hirt
Einführung in Codeversionierungssysteme
FileMaker Konferenz 2015 Hamburg
www.filemaker-konferenz.com
Git
• 200...
Thomas Hirt
Einführung in Codeversionierungssysteme
FileMaker Konferenz 2015 Hamburg
www.filemaker-konferenz.com
Git
remot...
Thomas Hirt
Einführung in Codeversionierungssysteme
FileMaker Konferenz 2015 Hamburg
www.filemaker-konferenz.com
Git
branc...
Thomas Hirt
Einführung in Codeversionierungssysteme
FileMaker Konferenz 2015 Hamburg
www.filemaker-konferenz.com
kleine Ma...
Thomas Hirt
Einführung in Codeversionierungssysteme
FileMaker Konferenz 2015 Hamburg
www.filemaker-konferenz.com
unvollstä...
Thomas Hirt
Einführung in Codeversionierungssysteme
FileMaker Konferenz 2015 Hamburg
www.filemaker-konferenz.com
unvollstä...
Thomas Hirt
Einführung in Codeversionierungssysteme
FileMaker Konferenz 2015 Hamburg
www.filemaker-konferenz.com
Codeversi...
Thomas Hirt
Einführung in Codeversionierungssysteme
FileMaker Konferenz 2015 Hamburg
www.filemaker-konferenz.com
Thinking ...
Thomas Hirt
Einführung in Codeversionierungssysteme
FileMaker Konferenz 2015 Hamburg
www.filemaker-konferenz.com
Codeversi...
Thomas Hirt
Einführung in Codeversionierungssysteme
FileMaker Konferenz 2015 Hamburg
www.filemaker-konferenz.com
Codeversi...
Thomas Hirt
Einführung in Codeversionierungssysteme
FileMaker Konferenz 2015 Hamburg
www.filemaker-konferenz.com
Codeversi...
Thomas Hirt
Einführung in Codeversionierungssysteme
FileMaker Konferenz 2015 Hamburg
www.filemaker-konferenz.com
Hinweise ...
Thomas Hirt
Einführung in Codeversionierungssysteme
FileMaker Konferenz 2015 Hamburg
www.filemaker-konferenz.com
Vielen Da...
Nächste SlideShare
Wird geladen in …5
×

FMK2015: Einführung in Codeversionierungssysteme by Thomas Hirt

503 Aufrufe

Veröffentlicht am

In vielen Programmiersprachen und in vielen Programmierumgebungen sind Codeversionierungssysteme seit Jahren eine Selbstverständlichkeit. Nicht so bei FileMaker.
Wir erfahren zuerst, was ein Codeversionierungssystem überhaupt ist. Wir sehen uns danach einige aktuelle Codeversionierungssysteme an und lernen einiges über ihre Eigenschaften sowie Vor- und Nachteile. Wir werden uns auch einen groben Überblick verschaffen, welche Softwareprodukte es am Markt für verschiedene Plattformen gibt (Client, Server, Hosted Services). Schliesslich werden wir uns damit beschäftigten, in welchem Umfang und in welchen Situationen auch FileMaker-Entwickler aus Sicht des Referenten von Codeversionierungssystemen profitieren können.

Veröffentlicht in: Technologie
0 Kommentare
0 Gefällt mir
Statistik
Notizen
  • Als Erste(r) kommentieren

  • Gehören Sie zu den Ersten, denen das gefällt!

Keine Downloads
Aufrufe
Aufrufe insgesamt
503
Auf SlideShare
0
Aus Einbettungen
0
Anzahl an Einbettungen
2
Aktionen
Geteilt
0
Downloads
20
Kommentare
0
Gefällt mir
0
Einbettungen 0
Keine Einbettungen

Keine Notizen für die Folie

FMK2015: Einführung in Codeversionierungssysteme by Thomas Hirt

  1. 1. Thomas Hirt Einführung in Codeversionierungssysteme FileMaker Konferenz 2015 Hamburg www.filemaker-konferenz.com Einführung in Codeversionierungssysteme
  2. 2. Thomas Hirt Einführung in Codeversionierungssysteme FileMaker Konferenz 2015 Hamburg www.filemaker-konferenz.com Inhalt • Was ist ein Codeversionierungssystem? • kurze Geschichte der Codeversionierung • zentralisierte vs. verteilte Codeversionierungssysteme • ein etwas genauerer Blick auf Subversion und Git • unvollständige Marktübersicht • Hosted Services • Serverprodukte • Client Software • Codeversionierungssysteme und grosse Dateien • Codeversionierung & FileMaker, Fragen & Antworten • Hinweise zum Workshop
  3. 3. Thomas Hirt Einführung in Codeversionierungssysteme FileMaker Konferenz 2015 Hamburg www.filemaker-konferenz.com Was ist ein Codeversionierungssystem? • ein Hilfsmittel von Programmierern für Programmierer • unterstützt den Entwicklungsprozess von Software, insb. im Team • gedacht zur Speicherung von Reintextdateien, welche Code enthalten • speichert alle Versionen einer Datei • kann Unterschiede zwischen Versionen anzeigen • Historisierung der Versionen in verzweigten Strukturen • serverbasierte Varianten ermöglichen die gleichzeitige Arbeit mehrerer Programmierer an einem Projekt und sogar an einer Datei • hilft, Versionenkonflikte zu vermeiden oder aufzulösen • unterstützt bei der Zusammenführung unterschiedlicher Versionszweige
  4. 4. Thomas Hirt Einführung in Codeversionierungssysteme FileMaker Konferenz 2015 Hamburg www.filemaker-konferenz.com kurze Geschichte der Code Versionierung Generation 1 • Verwaltung einzelner Dateien • Dateien werden auf dem Server gelockt • nur eine Datei editieren Vertreter • SCCS (Source Code Control System) 1972 • RCS (Revision Control System) 1982
  5. 5. Thomas Hirt Einführung in Codeversionierungssysteme FileMaker Konferenz 2015 Hamburg www.filemaker-konferenz.com kurze Geschichte der Code Versionierung Generation 2 • zentralisierte Versionskontrolle • Historie nur auf dem Server • viele Dateien einer Version auschecken • viele Dateien als neue Version einchecken • Management von Versionskonflikten Vertreter • CVS (Concurrent Version System) 1986 • SVN (Subversion) 2001 • Microsoft Visual SourceSafe • Microsoft Team Foundation Server
  6. 6. Thomas Hirt Einführung in Codeversionierungssysteme FileMaker Konferenz 2015 Hamburg www.filemaker-konferenz.com Workflow Zentrale Versionsverwaltung
  7. 7. Thomas Hirt Einführung in Codeversionierungssysteme FileMaker Konferenz 2015 Hamburg www.filemaker-konferenz.com kurze Geschichte der Code Versionierung Generation 3 • verteilte Versionskontrolle • lokale Historie und Serverhistorie • viele Dateien einer Version auschecken • viele Dateien als neue Version einchecken • Management von Versionskonflikten • ausgefeilte Methoden, Entwicklungszweige zu verschmelzen (Merge) Vertreter • Bazaar, 2005 (Ubuntu) • Git, 2005 (Linus Torvalds) • Mercurial, 2005 (Matt Mackall)
  8. 8. Thomas Hirt Einführung in Codeversionierungssysteme FileMaker Konferenz 2015 Hamburg www.filemaker-konferenz.com Workflow Verteilte Versionsverwaltung
  9. 9. Thomas Hirt Einführung in Codeversionierungssysteme FileMaker Konferenz 2015 Hamburg www.filemaker-konferenz.com zentralisierte vs. verteilte Codeversionierungssysteme zentralisiert • älterer Ansatz • immer nur eine Version auf dem Client • eine einheitliche Versionshistorie auf dem Server verfügbar • ein-/auschecken von Versionen nur mit Serververbindung möglich verteilt • modernerer Ansatz • komplettes Repository mit vielen Versionen auf dem Client • Versionshistorien auf dem Client und auf dem Server können gleich oder verschieden sein • ein-/auschecken von Versionen ist auch nur lokal und somit offline möglich • Synchronisation von Repositories sogar unter Clients möglich
  10. 10. Thomas Hirt Einführung in Codeversionierungssysteme FileMaker Konferenz 2015 Hamburg www.filemaker-konferenz.com Subversion • Version 1.0 erschien 2004 bei der Firma CollabNet • seit 2009 Open Source Projekt bei der Apache Foundation • zentrale Versionsverwaltung • vermutlich aktuell am weitesten verbreitete Versionsverwaltung • Implementierungen • Server unter Linux und Windows sowie als Cloud-Hosting • Clients unter Linux, Windows, Mac OS X • Ordnerstruktur (Konvention) • Trunk • Branches • Tags • sichtbar sind jeweils alle Dateien einer bestimmten Version • Standardwerk (Online-Buch): http://svnbook.red-bean.com/
  11. 11. Thomas Hirt Einführung in Codeversionierungssysteme FileMaker Konferenz 2015 Hamburg www.filemaker-konferenz.com Subversion Branch Merge Branch Tag
  12. 12. Thomas Hirt Einführung in Codeversionierungssysteme FileMaker Konferenz 2015 Hamburg www.filemaker-konferenz.com Git • 2005 von Linus Torvalds für Entwicklung des Linux Kernels entwickelt • hochentwickelt, nicht trivial, eigentlich ein Kommandozeilentool • verteilte Versionsverwaltung • Verbreitung nimmt seit Jahren stetig zu • sehr stark beim Zusammenführen (merge/rebase) verschiedener Entwicklungszweige (branches) • sichtbar sind jeweils alle Dateien eines Branches in einer bestimmten Version • Implementierungen • Kommandozeilentool • Cloud Hosting und standalone Server für Linux & Windows • kommerzielle GUI Clients für alle gängigen Betriebssysteme • Dokumentation • online: https://git-scm.com/doc • print: "Version Control with Git" (O'Reilly)
  13. 13. Thomas Hirt Einführung in Codeversionierungssysteme FileMaker Konferenz 2015 Hamburg www.filemaker-konferenz.com Git remote repository workspace local repository staging area add commit commit push pull or rebase fetch checkout or merge diff
  14. 14. Thomas Hirt Einführung in Codeversionierungssysteme FileMaker Konferenz 2015 Hamburg www.filemaker-konferenz.com Git branch merge branch Zeit
  15. 15. Thomas Hirt Einführung in Codeversionierungssysteme FileMaker Konferenz 2015 Hamburg www.filemaker-konferenz.com kleine Marktübersicht Hosted Cloud Services Anbieter Subversion Git Kostenbeispiel Assembla bis 1 GB kostenlos ≥ 21.55 €/Monat Beanstalk ≥ 13.45 €/Monat (5 User) Bitbucket bis 5 Benutzer kostenlos ≥ 9.00 €/Monat CloudForge ≥ 9.00 €/Monat (≥ 5 User) CodeBase ≥ 2.75 €/Monat GitHub öffentliche Repos kostenlos ≥ 6.25 €/Monat Unfuddle ≥ 17 €/Jahr (≤ 10 User) Es gibt viele weitere Cloud-Anbieter für unterschiedliche Zielgruppen und mit unterschiedlichen Zusatzfeatures. Die obenstehende Liste ist nur eine kleine Auswahl renommierter Anbieter.
  16. 16. Thomas Hirt Einführung in Codeversionierungssysteme FileMaker Konferenz 2015 Hamburg www.filemaker-konferenz.com unvollständige Marktübersicht Serverprodukte Produkt OS SVN Git Kostenbeispiel Apache & Subversion Open Source VisualSVN Server Standard $0 Enterprise $950 Bonobo Git Server Open Source Gitblit Open Source Gitolite Open Source GitLab Community Edition kostenlos Enterprise Edition ≥350 €/Jahr Attlassian Stash $10 (10 Users) $1800 (25 Users) MS Team Foundation Server $499 zzgl. CALs Perforce Helix $320/User/Jahr
  17. 17. Thomas Hirt Einführung in Codeversionierungssysteme FileMaker Konferenz 2015 Hamburg www.filemaker-konferenz.com unvollständige Marktübersicht Client Software Produkt OS SVN Git Kostenbeispiel TortoiseSVN Open Source SmartSVN Professional $99, Foundation $0 Syncro SVN Client $59 Versions $59 Cornerstone $59 GitHub Desktop kostenlos (Mac nur für GitHub) Git Extensions Open Source SmartGit $99, kostenlos für non-commercial Tower $69 Es gibt diverse weitere Clients für Windows und Mac OS X. Unter Linux stehen nebst den Shell Clients der Basispakete auch mehrere Open Source Clients in den Repositories der Distributionen zur Verfügung.
  18. 18. Thomas Hirt Einführung in Codeversionierungssysteme FileMaker Konferenz 2015 Hamburg www.filemaker-konferenz.com Codeversionierungssysteme und grosse Dateien • Codeversionierungssysteme wurden erfunden für die Bewirtschaftung von Textdateien bis einige MB Grösse. • Codeversionierungssysteme waren ursprünglich nicht dazu gedacht, grosse Binärdateien (BLOBs1) zu versionieren. • Codeversionierungssysteme spielen ihre volle Stärke aus bei… • der Bewältigung von Versionskonflikten. • der Verschmelzung von Entwicklungszweigen. • Viele Cloud-Anbieter setzen Limiten bei Dateigrössen (z.B. 100MB). • Zu einigen Codeversionierungssystemen gibt es Add-Ons, die BLOBs in einer gesonderten Speicherstruktur mit bewirtschaften können. • Es gibt kommerzielle, proprietäre Codeversionierungssysteme, die auch mit BLOBs gut umgehen können. 1 Binary Large OBjects
  19. 19. Thomas Hirt Einführung in Codeversionierungssysteme FileMaker Konferenz 2015 Hamburg www.filemaker-konferenz.com Thinking out of the Box: Versionierung grosser Files in der Cloud • Viele Cloud-Speicherdienste bieten Versionierung von Dateien an. • Viele Cloud-Speicherdienste haben keine oder geringe Probleme mit grossen bis sehr grossen Dateien. • Eine weitergehende Bewirtschaftung der Versionen, wie z.B. Versionsbeschreibungen, Seitenzweige, etc. existiert nicht. • Es gibt eine breite Palette von Angeboten. • kostenfrei, unverschlüsselt, datenschutzrechlich bedenklich • kostenpflichtig, EEE (end-to-end encryption), datenschutzrechtlich einwandfrei • Mein aktueller, persönlicher Favorit: tresorit.com
  20. 20. Thomas Hirt Einführung in Codeversionierungssysteme FileMaker Konferenz 2015 Hamburg www.filemaker-konferenz.com Codeversionierung & FileMaker Fragen und Antworten Q: Was kann bei FileMaker überhaupt versioniert werden? A: Natürlich ganze *.fmp12-Dateien. Diese lassen sich als BLOBs direkt versionieren. A: Es gibt Methoden, einzelne Bestandteile von FileMaker-Datenbanken als Reintext zu extrahieren und diesen Text in ein Codeversionierungssystem einzuchecken. A: Custom Functions lassen sich per Copy-Paste als Reintext auslesen und einfügen. A: Einige Plugins ermöglichen es, XML-Code aus der Zwischenablage als Text zu extrahieren, bzw. XML-Code in die Zwischenablage einzufügen (z.B. BaseElements Plugin, Clipboard Explorer, Clip Manager, …). A: Mit dem MBS-Plugin kann man unter Mac OS X Skripten als Text herauskopieren. Dies ist v.a. zu Dokumentationszwecken interessant. Einfügen kann man die Skripten via MBS-Plugin nicht.
  21. 21. Thomas Hirt Einführung in Codeversionierungssysteme FileMaker Konferenz 2015 Hamburg www.filemaker-konferenz.com Codeversionierung & FileMaker Fragen und Antworten Q: Wofür ist Codeversionierung im FileMaker-Umfeld wirklich nützlich? A: Sicher für ganze FileMaker-Datenbankdateien. Wenn man z.B. nur relativ leere Entwicklerversionen der Datenbanken versioniert, spielen die Beschränkungen und Probleme mit grösseren Binärdateien nur eine geringe Rolle. A: Aus meiner Sicht lassen sich Custom Functions wunderbar in Texteditoren erstellen und somit auch per Versionskontrolle verwalten. Richtig mühsam ist hingegen das Einpflegen neuer Versionen per Copy-Paste in bestehende Datenbanken. A: Wer vom Datenbankkontext entkoppelte Skripten oder andere XML- Snippets hat, die er immer wieder verwendet, für den kann auch die Versionierung solcher Inhalte wertvoll sein. Der Einsatz eines Plugins als Import-/Export-Schnittstelle ist dann aber zwingend nötig. A: Nicht zu vergessen sind auch weitere Projektinhalte, wie z.B. Dokumente zu Projektanforderungen, Bildmaterial oder Icons, Dokumentationen, Bedienungsanleitungen, etc.
  22. 22. Thomas Hirt Einführung in Codeversionierungssysteme FileMaker Konferenz 2015 Hamburg www.filemaker-konferenz.com Codeversionierung & FileMaker Fragen und Antworten Q: Kann ein FileMaker-Entwickler von Codeversionierungssystemen gleich stark profitieren, wie z.B. ein Entwickler, der C++ programmiert? A: Leider ganz klar nicht, nein. Q: Lohnt sich der Einsatz eines Codeversionierungssystems für alle FileMaker-Entwickler? A: Eher nicht, nein. Q: Erleichtert der Einsatz eines Codeversionierungssystems die FileMaker- Entwicklung im Team? A: Nur unter gewissen Umständen. Wenn mehrere Entwickler an derselben FileMaker-Datenbankdatei arbeiten müssen, hilft das Codeversionierungssystem nicht. Da hilft nur Entwicklung auf einem FileMaker-Server. Wenn aber die Aufgaben aufgeteilt werden können, kann der Einsatz eines Codeversionierungssystems sehr wohl die Arbeit und Koordination erleichtern sowie die Übersicht verbessern.
  23. 23. Thomas Hirt Einführung in Codeversionierungssysteme FileMaker Konferenz 2015 Hamburg www.filemaker-konferenz.com Hinweise für den Workshop • Entscheid betreffend Codeversionierungssystem • verteilt • Git • Randbedingungen für die Client Software • kostenlos oder Testversion verfügbar • Windows und Mac OS X • unabhängig vom Git-Hosting • freiwillige Vorbereitung • Download SmartGit Client: http://www.syntevo.com/smartgit/ • Installation SmartGit 30-Tage-Testversion • falls nicht vorhanden: Texteditor installieren
  24. 24. Thomas Hirt Einführung in Codeversionierungssysteme FileMaker Konferenz 2015 Hamburg www.filemaker-konferenz.com Vielen Dank unseren Sponsoren Danke für das Bewerten dieses Vortrages

×