SlideShare ist ein Scribd-Unternehmen logo
1




Git versus SVN
2




Wer bin ich?
 Mario Müller (@xenji)

 TWT Interactive GmbH - Düsseldorf

 Java, PHP, Python, Groovy

 FirstSpirit, JEE, Zend Framework, Oxid

 NoSQL FTW!

 Mac-Head & Linux Enthusiast

 Github: http://github.com/xenji
3
4




Warum Versionierung?
4




Warum Versionierung?


 Protokollierung
4




Warum Versionierung?


 Protokollierung

 Archivierung
4




Warum Versionierung?


 Protokollierung

 Archivierung

 Wiederherstellung
5




Zentrale Versionierung
6




Merkmale
6




Merkmale

 Es gibt mehr als eine Realität (ein Server, n Workingcopies)
6




Merkmale

 Es gibt mehr als eine Realität (ein Server, n Workingcopies)

 Revisionen werden zentral verwaltet, Versionsnummern zentral vergeben
6




Merkmale

 Es gibt mehr als eine Realität (ein Server, n Workingcopies)

 Revisionen werden zentral verwaltet, Versionsnummern zentral vergeben

 Vergleiche sind nur direkt mit dem Server möglich
6




Merkmale

 Es gibt mehr als eine Realität (ein Server, n Workingcopies)

 Revisionen werden zentral verwaltet, Versionsnummern zentral vergeben

 Vergleiche sind nur direkt mit dem Server möglich

 Häufig wird ein Delta-basiertes Speicherverfahren verwendet, so bleiben
 die zu übertragenden Mengen gering
6




Merkmale

 Es gibt mehr als eine Realität (ein Server, n Workingcopies)

 Revisionen werden zentral verwaltet, Versionsnummern zentral vergeben

 Vergleiche sind nur direkt mit dem Server möglich

 Häufig wird ein Delta-basiertes Speicherverfahren verwendet, so bleiben
 die zu übertragenden Mengen gering

 Die Versionshistorie ist nur auf dem Server verfügbar
6




Merkmale

 Es gibt mehr als eine Realität (ein Server, n Workingcopies)

 Revisionen werden zentral verwaltet, Versionsnummern zentral vergeben

 Vergleiche sind nur direkt mit dem Server möglich

 Häufig wird ein Delta-basiertes Speicherverfahren verwendet, so bleiben
 die zu übertragenden Mengen gering

 Die Versionshistorie ist nur auf dem Server verfügbar

 Die Zentralisierung ermöglicht ein Zugriffs- und Rechtemanagement
7




Dezentrale Versionierung
8




Merkmale
8




Merkmale
 Es gibt viele, mehrdimensionale Realitäten (Multi-Master, Multi-
 Workingcopy)
8




Merkmale
 Es gibt viele, mehrdimensionale Realitäten (Multi-Master, Multi-
 Workingcopy)

 Jede Workingcopy ist ein kompletter Klon mit allen Versionen
8




Merkmale
 Es gibt viele, mehrdimensionale Realitäten (Multi-Master, Multi-
 Workingcopy)

 Jede Workingcopy ist ein kompletter Klon mit allen Versionen

 Theoretisch gibt es keinen zentralen Server
8




Merkmale
 Es gibt viele, mehrdimensionale Realitäten (Multi-Master, Multi-
 Workingcopy)

 Jede Workingcopy ist ein kompletter Klon mit allen Versionen

 Theoretisch gibt es keinen zentralen Server

 Das Repository ist lokal und unabhängig
8




Merkmale
 Es gibt viele, mehrdimensionale Realitäten (Multi-Master, Multi-
 Workingcopy)

 Jede Workingcopy ist ein kompletter Klon mit allen Versionen

 Theoretisch gibt es keinen zentralen Server

 Das Repository ist lokal und unabhängig

 Alle Operationen sind lokal
8




Merkmale
 Es gibt viele, mehrdimensionale Realitäten (Multi-Master, Multi-
 Workingcopy)

 Jede Workingcopy ist ein kompletter Klon mit allen Versionen

 Theoretisch gibt es keinen zentralen Server

 Das Repository ist lokal und unabhängig

 Alle Operationen sind lokal

 Es ist ein Mechanismus zur Synchronisierung mit einer entfernten Instanz
 vorhanden
9




  •   Active Responses: The total of responses excluding "No Opinion". (eg for
      git: 65 + 19 + 1 + 0)
  •   Approval %: The sum of best and ok responses divided by active responses,
      expressed as a percentage. (eg for git: (65 + 19) / 85)
                                                                                  Approval in %




VCS Survey (von M. Fowler)
9




  •   Active Responses: The total of responses excluding "No Opinion". (eg for
      git: 65 + 19 + 1 + 0)
  •   Approval %: The sum of best and ok responses divided by active responses,
      expressed as a percentage. (eg for git: (65 + 19) / 85)
                                                                                  Approval in %




VCS Survey (von M. Fowler)
10




SVN
11




Geschichte
11




Geschichte

 Version 1.0 am 20. Oktober 2000
11




Geschichte

 Version 1.0 am 20. Oktober 2000

 Enwickelt von CollabNet
11




Geschichte

 Version 1.0 am 20. Oktober 2000

 Enwickelt von CollabNet

 Seit dem 10. Feb. 2010 ein Apache Top-
 Level Projekt
11




Geschichte

 Version 1.0 am 20. Oktober 2000

 Enwickelt von CollabNet

 Seit dem 10. Feb. 2010 ein Apache Top-
 Level Projekt

 Weiterentwicklung vom ebenfalls zentralen
 Versionierungstool „CVS“
12




Begriffe
12




Begriffe

                            Branch
     Changeset



                 Revision
       Tag
13




Eine SVN Timeline
14




Vorteile
14




Vorteile
 Kostenfrei erhältlich
14




Vorteile
 Kostenfrei erhältlich

 Erprobt im OpenSource- und Unternehmens-
 alltag
14




Vorteile
 Kostenfrei erhältlich

 Erprobt im OpenSource- und Unternehmens-
 alltag

 Stetige Entwicklung als Apache Projekt
 gesichert
14




Vorteile
 Kostenfrei erhältlich

 Erprobt im OpenSource- und Unternehmens-
 alltag

 Stetige Entwicklung als Apache Projekt
 gesichert

 Hohe Akzeptanz
14




Vorteile
 Kostenfrei erhältlich

 Erprobt im OpenSource- und Unternehmens-
 alltag

 Stetige Entwicklung als Apache Projekt
 gesichert

 Hohe Akzeptanz

 Unterstützt von vielen IDEs, Clients und Project
 Hosting Anbietern (z. B. SourceForge)
14




Vorteile
 Kostenfrei erhältlich

 Erprobt im OpenSource- und Unternehmens-
 alltag

 Stetige Entwicklung als Apache Projekt
 gesichert

 Hohe Akzeptanz

 Unterstützt von vielen IDEs, Clients und Project
 Hosting Anbietern (z. B. SourceForge)

 Einfache Handhabung
14




Vorteile
 Kostenfrei erhältlich

 Erprobt im OpenSource- und Unternehmens-
 alltag

 Stetige Entwicklung als Apache Projekt
 gesichert

 Hohe Akzeptanz

 Unterstützt von vielen IDEs, Clients und Project
 Hosting Anbietern (z. B. SourceForge)

 Einfache Handhabung

 Authc & Authz abbildbar
15




Einschränkungen
15




Einschränkungen

 Ohne Server geht nichts
15




Einschränkungen

 Ohne Server geht nichts

 Es werden nur Deltas verwaltet
15




Einschränkungen

 Ohne Server geht nichts

 Es werden nur Deltas verwaltet

 Automatisches Mergen ist in vielen Fällen
 keine schöne Erfahrung
15




Einschränkungen

 Ohne Server geht nichts

 Es werden nur Deltas verwaltet

 Automatisches Mergen ist in vielen Fällen
 keine schöne Erfahrung

 Jeder Commit muss einzeln gemergt
 werden
16




Alleinstellungsmerkmale



 Properties auf Datei / Verzeichnisebene

 svn:externals um entfernte Repositories
 transparent „hineinzulinken“
17




Git
18
18
18




Wer hat‘s erfunden?
19




Linus Torvalds
19




Linus Torvalds

 Initiator der Linux - Bewegung
19




Linus Torvalds

 Initiator der Linux - Bewegung

 Wahrscheinlich der berühmteste
 Entwickler der heutigen Zeit
19




Linus Torvalds

 Initiator der Linux - Bewegung

 Wahrscheinlich der berühmteste
 Entwickler der heutigen Zeit

 Entwickelt aktiv am Linux Kernel
19




Linus Torvalds

 Initiator der Linux - Bewegung

 Wahrscheinlich der berühmteste
 Entwickler der heutigen Zeit

 Entwickelt aktiv am Linux Kernel

 Ist Erfinder von Git, jedoch nicht mehr der
 Hauptentwickler
20




Geschichte


 Gestartet im April 2005 um den damals
 verwendeten BitKeeper zu ersetzen

 Aktuell in der Version 1.7.x verfügbar

 Schnell adaptiert worden (GitHub,
 Gitorious)
21




Begriffe
21




Begriffe
                          Clone
     Pull

              Staging


                        Push
     Remote
22




Clone


 Unter einem „Clone“ versteht man das
 Spiegeln einer vollständigen Historie in ein
 (lokales) Repository.

 Dabei wird jeder Commit, jeder Tag und jeder
 Branch mit einbezogen.
23




Remotes

 Branches werden in Git in zwei Zuständen
 verwaltet. Lokal und Remote. Ein Remote
 Branch ist eine Referenz auf einen lokalen
 Branch in einem entfernten Repository.

 Remotes werden interessant, wenn
 mehrere Entwickler am selben Branch
 arbeiten und den entwickelten Quellcode
 verteilen wollen.
24




Staging


 Hinzufügen von Dateien in einen virtuellen
 Bereich

 Alle Daten im Stage kommen in den
 nächsten Commit

 Commits sind dadurch auf CLI Ebene
 „zusammenbaubar“
25




Push

 Übermittelt den Inhalt eines Branches aus
 einem lokalen Repository an ein Remote
 Repository

 Transferiert Commit-By-Commit

 Aus Sicht des Remote Repositories sieht
 es aus, als hätte die Person lokal
 Commit‘ed
26




Pull

 „Zieht“ Änderungen aus einem Remote
 Repository

 Wenn mehrere Branches aus einem
 Remote existieren (z. B. nach einem
 Clone eines Repositories mit mehreren
 Branches), werden diese ebenfalls
 „gezogen“

 Explizites „ziehen“ ist möglich -> nur
 „master“, nur „2.1.0“, nur „testing“
27




Funktionsweise
27




Funktionsweise

 Git Repositories bestehen aus drei Komponenten:

   Tree Objekte

   Commit Objekte

   Blobs (Binary Large OBjects)

 Jedes Objekt bekommt eine repository-weit eindeutige ID in From einer
 SHA-1 Prüfsumme
27




Funktionsweise
28




Arbeitsschritte
29




Vorteile
 Schnell, da eine Vielzahl der Operationen
 lokal ist

 Unabhängig, da kein Server benötigt wird

 Sicher, da jeder alles besitzt (= verteiltes
 Backup)

 Objekt-orientierte Sichtweise auf die
 Teilstücke des Versionsbaumes

 Vollkommene Freiheit, da jeder sich selbst
 organisieren kann.
30




Einschränkungen

 Autorisierung per SSH unter Windows nur
 per PuTTY - Toolbox

 Einsatz unter Windows nur per mingw

 Kaum gute GUIs oder IDE Plugins

 „Ungemütliche Lernkurve“

 Vollkommene Freiheit
31




Workflow Modelle
32




Team Organisation
 Es sind verschiedene Ansätze zur
 Organisation von Teams entstanden

 Viele sind auch in der zentralisierten Welt
 vorhanden, aber wenig genutzt

 Canonical hat mit der Veröffentlichung von
 Bazaar in Verbindung mit Launchpad sehr
 gute Arbeit geleistet und mögliche
 Workflows dokumentiert (http://
 wiki.bazaar.canonical.com/Workflows)

 Hier stelle ich 3 Modelle beispielhaft vor
33




Workflow - Ein User

 Der „Freelancer - Workflow“

 Gut für einzelne Programmierer, die

   Weder Zeit

   noch Resourcen für das Setup eines SVN
   Servers haben

 Schlecht, wenn man kein Backup hat und
 die Festplatte / das Speichermedium
 verliert
34




Workflow - kleines Team

 Es gibt ein „blessed“ Repository, also ein
 zentrales Repository

 Jeder klont sich dieses Repository ein mal

 Ab dann werden Änderungen per push &
 pull verteilt

 Sinnvoll für kleine Teams (zwischen 2 und
 6 Leuten) mit überschaubaren Commit-
 Zahlen
35




Workflow - Integration Manager
36




Workflow - (benevolent) Dictator
37




Workflow Integ. Manager / Dictator

 Für große Teams geeignet

 Hoher Management-Aufwand

 Hohe Parallelisierung

 Sehr guter Zustand des Repository

 Der Integration Manager lohnt sich ab 10-15 Personen

 Das Dictator Modell lohnt sich erst bei 50+ Personen
38




Enterprising Git
39




Anforderungen an Git im Unternehmen


 Authentifizierung (LDAP, ADS, etc)

 Autorisierung (Gruppen, Rollen, Rechte)

 Automatisierte Backups

 Support

 Akzeptanz
40




Authentifizierung

 Ist mit Linux - Bordmitteln anstrengend

 Gitosis und Gitorious bieten Hilfe

 Integrierte directory-basierte Lösungen sind keine Vorhanden

 HTTP Push ermöglicht jedoch Autorisierung per Webserver

 Erweiterte Authentifizierung kann man per Hooks hacken
41




Autorisierung


 Gitosis oder Gitorious helfen, man verlagert aber nur die Aufgabe

 Keine Mechanismen implementiert

 Implementierung per Post-Commit / Post-Push Hooks
42




 Backups

mmue-mbp:ProwlPHP mario$ git fast-export --all | less

                                                                       Option 1:
commit refs/heads/master
mark :281                                                              Einfach kopieren
author Mario Mueller <mario.mueller.work@gmail.com> 1305968206 +0200
committer Mario Mueller <mario.mueller.work@gmail.com> 1305968206
+0200
data 55                                                                Option 2:
Resolved #6, but need some relyability fixing later on
from :279                                                              git fast-export --all
M 100644 :280 src/Prowl/Connector.php
43




Alternativen
44




Bazaar

 Von Canonical (Ubuntu)

 in Python geschrieben

 Aktivste Plattform: Launchpad

 Einfacher in der Handhabe

 Gefühlt langsamer als Git
45




Mercurial

 Wir seit Q4 2010 von Atlassian weiter entwickelt

 Ist ebenfalls in Python geschrieben

 Aktivste Plattform: Bitbucket, Google Code

 Ist einfacher als Git, einfacher als Bazaar

 Performanter als Bazaar, wenig langsamer als Git
46




Vielen Dank für die
 Aufmersamkeit!
47




Fragen

Weitere ähnliche Inhalte

Was ist angesagt?

Vagrant, Puppet, Docker für Entwickler und Architekten
Vagrant, Puppet, Docker für Entwickler und ArchitektenVagrant, Puppet, Docker für Entwickler und Architekten
Vagrant, Puppet, Docker für Entwickler und Architekten
OPITZ CONSULTING Deutschland
 
docker.io - Secure And Portable Containers Made Easy
docker.io - Secure And Portable Containers Made Easydocker.io - Secure And Portable Containers Made Easy
docker.io - Secure And Portable Containers Made Easy
inovex GmbH
 
Docker Workshop Experten Forum Stuttgart 2015, Agile Methoden GmbH
Docker Workshop Experten Forum Stuttgart 2015, Agile Methoden GmbHDocker Workshop Experten Forum Stuttgart 2015, Agile Methoden GmbH
Docker Workshop Experten Forum Stuttgart 2015, Agile Methoden GmbH
agilemethoden
 
Docker Security - Architektur und Sicherheitsfunktionen von Containervirtuali...
Docker Security - Architektur und Sicherheitsfunktionen von Containervirtuali...Docker Security - Architektur und Sicherheitsfunktionen von Containervirtuali...
Docker Security - Architektur und Sicherheitsfunktionen von Containervirtuali...
inovex GmbH
 
Docker und Kubernetes Patterns & Anti-Patterns
Docker und Kubernetes Patterns & Anti-PatternsDocker und Kubernetes Patterns & Anti-Patterns
Docker und Kubernetes Patterns & Anti-Patterns
QAware GmbH
 
Docker - Automatisches Deployment für Linux-Instanzen
Docker - Automatisches Deployment für Linux-Instanzen Docker - Automatisches Deployment für Linux-Instanzen
Docker - Automatisches Deployment für Linux-Instanzen
B1 Systems GmbH
 
"git.net" gibt's nicht?
"git.net" gibt's nicht?"git.net" gibt's nicht?
"git.net" gibt's nicht?
inovex GmbH
 
Einführung in Git
Einführung in GitEinführung in Git
Einführung in Git
andreaswo
 
docker.io @ CentOS 7 - Secure And Portable Containers Made Easy
docker.io @ CentOS 7 - Secure And Portable Containers Made Easydocker.io @ CentOS 7 - Secure And Portable Containers Made Easy
docker.io @ CentOS 7 - Secure And Portable Containers Made Easy
inovex GmbH
 
systemd & Docker
systemd & Dockersystemd & Docker
systemd & Docker
Thorsten Höger
 
Was gibt es Neues im Docker-Universum
Was gibt es Neues im Docker-UniversumWas gibt es Neues im Docker-Universum
Was gibt es Neues im Docker-Universum
Nicholas Dille
 
Docker - Containervirtualisierung leichtgemacht
Docker - Containervirtualisierung leichtgemachtDocker - Containervirtualisierung leichtgemacht
Docker - Containervirtualisierung leichtgemacht
B1 Systems GmbH
 
Was ist Docker ?
Was ist Docker ?Was ist Docker ?
Was ist Docker ?
Ulrich Gerkmann-Bartels
 
Vagrant - Einführung & Verwendung
Vagrant - Einführung & VerwendungVagrant - Einführung & Verwendung
Vagrant - Einführung & Verwendung
Tilo Baller
 
Docker Einführung @GPN15
Docker Einführung @GPN15Docker Einführung @GPN15
Docker Einführung @GPN15
m1no
 
oVirt 3.5 - Einführung und Evaluierungsergebnisse
oVirt 3.5 - Einführung und EvaluierungsergebnisseoVirt 3.5 - Einführung und Evaluierungsergebnisse
oVirt 3.5 - Einführung und Evaluierungsergebnisse
inovex GmbH
 
Jenkins Acceleration
Jenkins AccelerationJenkins Acceleration
Jenkins Acceleration
Patrick Paechnatz
 
Stephan Kaps – IT-Tage 2015 – Flyway vs. LiquiBase – Battle der Datenbankmigr...
Stephan Kaps – IT-Tage 2015 – Flyway vs. LiquiBase – Battle der Datenbankmigr...Stephan Kaps – IT-Tage 2015 – Flyway vs. LiquiBase – Battle der Datenbankmigr...
Stephan Kaps – IT-Tage 2015 – Flyway vs. LiquiBase – Battle der Datenbankmigr...
Informatik Aktuell
 
Entwicklungsumgebungen - Packer, Vagrant, Puppet
Entwicklungsumgebungen - Packer, Vagrant, PuppetEntwicklungsumgebungen - Packer, Vagrant, Puppet
Entwicklungsumgebungen - Packer, Vagrant, Puppet
inovex GmbH
 
Tipps und Tricks im Umgang mit Docker
Tipps und Tricks im Umgang mit DockerTipps und Tricks im Umgang mit Docker
Tipps und Tricks im Umgang mit Docker
Nicholas Dille
 

Was ist angesagt? (20)

Vagrant, Puppet, Docker für Entwickler und Architekten
Vagrant, Puppet, Docker für Entwickler und ArchitektenVagrant, Puppet, Docker für Entwickler und Architekten
Vagrant, Puppet, Docker für Entwickler und Architekten
 
docker.io - Secure And Portable Containers Made Easy
docker.io - Secure And Portable Containers Made Easydocker.io - Secure And Portable Containers Made Easy
docker.io - Secure And Portable Containers Made Easy
 
Docker Workshop Experten Forum Stuttgart 2015, Agile Methoden GmbH
Docker Workshop Experten Forum Stuttgart 2015, Agile Methoden GmbHDocker Workshop Experten Forum Stuttgart 2015, Agile Methoden GmbH
Docker Workshop Experten Forum Stuttgart 2015, Agile Methoden GmbH
 
Docker Security - Architektur und Sicherheitsfunktionen von Containervirtuali...
Docker Security - Architektur und Sicherheitsfunktionen von Containervirtuali...Docker Security - Architektur und Sicherheitsfunktionen von Containervirtuali...
Docker Security - Architektur und Sicherheitsfunktionen von Containervirtuali...
 
Docker und Kubernetes Patterns & Anti-Patterns
Docker und Kubernetes Patterns & Anti-PatternsDocker und Kubernetes Patterns & Anti-Patterns
Docker und Kubernetes Patterns & Anti-Patterns
 
Docker - Automatisches Deployment für Linux-Instanzen
Docker - Automatisches Deployment für Linux-Instanzen Docker - Automatisches Deployment für Linux-Instanzen
Docker - Automatisches Deployment für Linux-Instanzen
 
"git.net" gibt's nicht?
"git.net" gibt's nicht?"git.net" gibt's nicht?
"git.net" gibt's nicht?
 
Einführung in Git
Einführung in GitEinführung in Git
Einführung in Git
 
docker.io @ CentOS 7 - Secure And Portable Containers Made Easy
docker.io @ CentOS 7 - Secure And Portable Containers Made Easydocker.io @ CentOS 7 - Secure And Portable Containers Made Easy
docker.io @ CentOS 7 - Secure And Portable Containers Made Easy
 
systemd & Docker
systemd & Dockersystemd & Docker
systemd & Docker
 
Was gibt es Neues im Docker-Universum
Was gibt es Neues im Docker-UniversumWas gibt es Neues im Docker-Universum
Was gibt es Neues im Docker-Universum
 
Docker - Containervirtualisierung leichtgemacht
Docker - Containervirtualisierung leichtgemachtDocker - Containervirtualisierung leichtgemacht
Docker - Containervirtualisierung leichtgemacht
 
Was ist Docker ?
Was ist Docker ?Was ist Docker ?
Was ist Docker ?
 
Vagrant - Einführung & Verwendung
Vagrant - Einführung & VerwendungVagrant - Einführung & Verwendung
Vagrant - Einführung & Verwendung
 
Docker Einführung @GPN15
Docker Einführung @GPN15Docker Einführung @GPN15
Docker Einführung @GPN15
 
oVirt 3.5 - Einführung und Evaluierungsergebnisse
oVirt 3.5 - Einführung und EvaluierungsergebnisseoVirt 3.5 - Einführung und Evaluierungsergebnisse
oVirt 3.5 - Einführung und Evaluierungsergebnisse
 
Jenkins Acceleration
Jenkins AccelerationJenkins Acceleration
Jenkins Acceleration
 
Stephan Kaps – IT-Tage 2015 – Flyway vs. LiquiBase – Battle der Datenbankmigr...
Stephan Kaps – IT-Tage 2015 – Flyway vs. LiquiBase – Battle der Datenbankmigr...Stephan Kaps – IT-Tage 2015 – Flyway vs. LiquiBase – Battle der Datenbankmigr...
Stephan Kaps – IT-Tage 2015 – Flyway vs. LiquiBase – Battle der Datenbankmigr...
 
Entwicklungsumgebungen - Packer, Vagrant, Puppet
Entwicklungsumgebungen - Packer, Vagrant, PuppetEntwicklungsumgebungen - Packer, Vagrant, Puppet
Entwicklungsumgebungen - Packer, Vagrant, Puppet
 
Tipps und Tricks im Umgang mit Docker
Tipps und Tricks im Umgang mit DockerTipps und Tricks im Umgang mit Docker
Tipps und Tricks im Umgang mit Docker
 

Andere mochten auch

Trabajo instalaciones de software
Trabajo instalaciones de softwareTrabajo instalaciones de software
Trabajo instalaciones de software
Katerine Mendosa
 
BeginnerUnit11
BeginnerUnit11BeginnerUnit11
BeginnerUnit11
Learngle
 
Por qué el vídeo demo es la mejor manera de promocionar tu negocio
Por qué el vídeo demo es la mejor manera de promocionar tu negocioPor qué el vídeo demo es la mejor manera de promocionar tu negocio
Por qué el vídeo demo es la mejor manera de promocionar tu negocio
SeoCanarias
 
Proyeccion presupestaria
Proyeccion presupestariaProyeccion presupestaria
Proyeccion presupestaria
Shirlid .n
 
Blogs
BlogsBlogs
Bass
BassBass
Presentación3
Presentación3Presentación3
Presentación3
Dayiita Benavides
 
Fernando Mores
Fernando MoresFernando Mores
Fernando Mores
Mary Suasnabar
 
Desafio alumnos 1o interiores
Desafio alumnos 1o interioresDesafio alumnos 1o interiores
Desafio alumnos 1o interiores
Emilio Armando Acosta
 
Instalacion Centos 6.5
Instalacion Centos 6.5Instalacion Centos 6.5
Instalacion Centos 6.5
Shirlid .n
 
Ruta 5
Ruta 5Ruta 5
Social Media als Chance für den Geschäftserfolg
Social Media als Chance für den GeschäftserfolgSocial Media als Chance für den Geschäftserfolg
Social Media als Chance für den Geschäftserfolg
Herbert Wagger
 
Osterholz-Schambock 2014 3. Kommunaler Marktplatz
Osterholz-Schambock 2014 3. Kommunaler Marktplatz Osterholz-Schambock 2014 3. Kommunaler Marktplatz
Osterholz-Schambock 2014 3. Kommunaler Marktplatz
Igor Brusic
 
145006988 desafios-matematicos-alumnos-3º-tercer-grado-primaria
145006988 desafios-matematicos-alumnos-3º-tercer-grado-primaria145006988 desafios-matematicos-alumnos-3º-tercer-grado-primaria
145006988 desafios-matematicos-alumnos-3º-tercer-grado-primaria
Emilio Armando Acosta
 
Prezi Nora 2
Prezi Nora 2Prezi Nora 2
Prezi Nora 2
Vianey Vianey
 
Ovideo decroly
Ovideo decrolyOvideo decroly
Ovideo decroly
lcc92
 
Foerderrichtlinie kommunen bf
Foerderrichtlinie kommunen bfFoerderrichtlinie kommunen bf
Foerderrichtlinie kommunen bf
metropolsolar
 
6 gestión del cambio
6 gestión del cambio6 gestión del cambio
6 gestión del cambio
Thomas BARTHEL
 

Andere mochten auch (20)

Trabajo instalaciones de software
Trabajo instalaciones de softwareTrabajo instalaciones de software
Trabajo instalaciones de software
 
BeginnerUnit11
BeginnerUnit11BeginnerUnit11
BeginnerUnit11
 
Por qué el vídeo demo es la mejor manera de promocionar tu negocio
Por qué el vídeo demo es la mejor manera de promocionar tu negocioPor qué el vídeo demo es la mejor manera de promocionar tu negocio
Por qué el vídeo demo es la mejor manera de promocionar tu negocio
 
Proyeccion presupestaria
Proyeccion presupestariaProyeccion presupestaria
Proyeccion presupestaria
 
Blogs
BlogsBlogs
Blogs
 
Franz Kafka, Der Aufbruch
Franz Kafka, Der AufbruchFranz Kafka, Der Aufbruch
Franz Kafka, Der Aufbruch
 
Bass
BassBass
Bass
 
Netzwerkworkshop
NetzwerkworkshopNetzwerkworkshop
Netzwerkworkshop
 
Presentación3
Presentación3Presentación3
Presentación3
 
Fernando Mores
Fernando MoresFernando Mores
Fernando Mores
 
Desafio alumnos 1o interiores
Desafio alumnos 1o interioresDesafio alumnos 1o interiores
Desafio alumnos 1o interiores
 
Instalacion Centos 6.5
Instalacion Centos 6.5Instalacion Centos 6.5
Instalacion Centos 6.5
 
Ruta 5
Ruta 5Ruta 5
Ruta 5
 
Social Media als Chance für den Geschäftserfolg
Social Media als Chance für den GeschäftserfolgSocial Media als Chance für den Geschäftserfolg
Social Media als Chance für den Geschäftserfolg
 
Osterholz-Schambock 2014 3. Kommunaler Marktplatz
Osterholz-Schambock 2014 3. Kommunaler Marktplatz Osterholz-Schambock 2014 3. Kommunaler Marktplatz
Osterholz-Schambock 2014 3. Kommunaler Marktplatz
 
145006988 desafios-matematicos-alumnos-3º-tercer-grado-primaria
145006988 desafios-matematicos-alumnos-3º-tercer-grado-primaria145006988 desafios-matematicos-alumnos-3º-tercer-grado-primaria
145006988 desafios-matematicos-alumnos-3º-tercer-grado-primaria
 
Prezi Nora 2
Prezi Nora 2Prezi Nora 2
Prezi Nora 2
 
Ovideo decroly
Ovideo decrolyOvideo decroly
Ovideo decroly
 
Foerderrichtlinie kommunen bf
Foerderrichtlinie kommunen bfFoerderrichtlinie kommunen bf
Foerderrichtlinie kommunen bf
 
6 gestión del cambio
6 gestión del cambio6 gestión del cambio
6 gestión del cambio
 

Ähnlich wie Git vs SVN DevCon 2011

BASTA Spring 2016: Test- und Releaseumgebungen der nächsten Generation mit TF...
BASTA Spring 2016: Test- und Releaseumgebungen der nächsten Generation mit TF...BASTA Spring 2016: Test- und Releaseumgebungen der nächsten Generation mit TF...
BASTA Spring 2016: Test- und Releaseumgebungen der nächsten Generation mit TF...
Marc Müller
 
Ovirt als Managementtool
Ovirt als ManagementtoolOvirt als Managementtool
Ovirt als Managementtool
Virttoo org
 
Continuous Everything
Continuous EverythingContinuous Everything
Continuous Everything
cusy GmbH
 
Übersicht und Beratung von Versionsverwaltungen für Quellcode (SCM) [2014]
Übersicht und Beratung von Versionsverwaltungen  für Quellcode (SCM) [2014]Übersicht und Beratung von Versionsverwaltungen  für Quellcode (SCM) [2014]
Übersicht und Beratung von Versionsverwaltungen für Quellcode (SCM) [2014]
Tommy Ziegler
 
Paradiesisch - OpenNTF
Paradiesisch - OpenNTFParadiesisch - OpenNTF
Paradiesisch - OpenNTF
Oliver Busse
 
Die Strategische Bedeutung Von Open Source FüR Das 3 D Internet V2
Die Strategische Bedeutung Von Open Source FüR Das 3 D Internet V2Die Strategische Bedeutung Von Open Source FüR Das 3 D Internet V2
Die Strategische Bedeutung Von Open Source FüR Das 3 D Internet V2
Andreas Mertens
 
OpenNTF 2015 Edition
OpenNTF 2015 EditionOpenNTF 2015 Edition
OpenNTF 2015 Edition
Christian Güdemann
 
1. Cloud Native Meetup Innsbruck, 23.11.2023
1. Cloud Native Meetup Innsbruck, 23.11.20231. Cloud Native Meetup Innsbruck, 23.11.2023
1. Cloud Native Meetup Innsbruck, 23.11.2023
Johannes Kleinlercher
 
Javaland 2016 - Flyway vs. LiquiBase - Battle der Datenbankmigrationstools
Javaland 2016 - Flyway vs. LiquiBase - Battle der DatenbankmigrationstoolsJavaland 2016 - Flyway vs. LiquiBase - Battle der Datenbankmigrationstools
Javaland 2016 - Flyway vs. LiquiBase - Battle der Datenbankmigrationstools
Stephan Kaps
 
Foreman: Klassen und Parametrisierung in Puppet (Webinar vom 20. Mai 2016)
Foreman: Klassen und Parametrisierung in Puppet (Webinar vom 20. Mai 2016)Foreman: Klassen und Parametrisierung in Puppet (Webinar vom 20. Mai 2016)
Foreman: Klassen und Parametrisierung in Puppet (Webinar vom 20. Mai 2016)
NETWAYS
 
Groupware Linuxtag 2008 Cb
Groupware Linuxtag 2008 CbGroupware Linuxtag 2008 Cb
Groupware Linuxtag 2008 Cb
bofh42
 
Trivadis TechEvent 2016 Ablösung einer Tivoli Monitoring Umgebung mit OpenSou...
Trivadis TechEvent 2016 Ablösung einer Tivoli Monitoring Umgebung mit OpenSou...Trivadis TechEvent 2016 Ablösung einer Tivoli Monitoring Umgebung mit OpenSou...
Trivadis TechEvent 2016 Ablösung einer Tivoli Monitoring Umgebung mit OpenSou...
Trivadis
 
Bernhard Wick - appserver.io - code.talks 2015
 Bernhard Wick - appserver.io - code.talks 2015 Bernhard Wick - appserver.io - code.talks 2015
Bernhard Wick - appserver.io - code.talks 2015
AboutYouGmbH
 
Versionskontrolle mit Apache Subversion
Versionskontrolle mit Apache SubversionVersionskontrolle mit Apache Subversion
Versionskontrolle mit Apache Subversion
Mathias Magdowski
 
FMK2015: Einführung in Codeversionierungssysteme by Thomas Hirt
FMK2015: Einführung in Codeversionierungssysteme by Thomas HirtFMK2015: Einführung in Codeversionierungssysteme by Thomas Hirt
FMK2015: Einführung in Codeversionierungssysteme by Thomas Hirt
Verein FM Konferenz
 
Git class german / english
Git class german / englishGit class german / english
Git class german / english
Kevin Read
 
Agile Entwicklungsumgebung mit DVCS, Jenkins und Trello - Agile Bodensee Konf...
Agile Entwicklungsumgebung mit DVCS, Jenkins und Trello - Agile Bodensee Konf...Agile Entwicklungsumgebung mit DVCS, Jenkins und Trello - Agile Bodensee Konf...
Agile Entwicklungsumgebung mit DVCS, Jenkins und Trello - Agile Bodensee Konf...
Jürgen Gutsch
 
Agile Softwareentwicklung mit Rails
Agile Softwareentwicklung mit RailsAgile Softwareentwicklung mit Rails
Agile Softwareentwicklung mit Rails
Hussein Morsy
 
PHP5 und Oracle
PHP5 und OraclePHP5 und Oracle
PHP5 und Oracle
Mayflower GmbH
 
Quo vadis DevOps
Quo vadis DevOpsQuo vadis DevOps
Quo vadis DevOps
cusy GmbH
 

Ähnlich wie Git vs SVN DevCon 2011 (20)

BASTA Spring 2016: Test- und Releaseumgebungen der nächsten Generation mit TF...
BASTA Spring 2016: Test- und Releaseumgebungen der nächsten Generation mit TF...BASTA Spring 2016: Test- und Releaseumgebungen der nächsten Generation mit TF...
BASTA Spring 2016: Test- und Releaseumgebungen der nächsten Generation mit TF...
 
Ovirt als Managementtool
Ovirt als ManagementtoolOvirt als Managementtool
Ovirt als Managementtool
 
Continuous Everything
Continuous EverythingContinuous Everything
Continuous Everything
 
Übersicht und Beratung von Versionsverwaltungen für Quellcode (SCM) [2014]
Übersicht und Beratung von Versionsverwaltungen  für Quellcode (SCM) [2014]Übersicht und Beratung von Versionsverwaltungen  für Quellcode (SCM) [2014]
Übersicht und Beratung von Versionsverwaltungen für Quellcode (SCM) [2014]
 
Paradiesisch - OpenNTF
Paradiesisch - OpenNTFParadiesisch - OpenNTF
Paradiesisch - OpenNTF
 
Die Strategische Bedeutung Von Open Source FüR Das 3 D Internet V2
Die Strategische Bedeutung Von Open Source FüR Das 3 D Internet V2Die Strategische Bedeutung Von Open Source FüR Das 3 D Internet V2
Die Strategische Bedeutung Von Open Source FüR Das 3 D Internet V2
 
OpenNTF 2015 Edition
OpenNTF 2015 EditionOpenNTF 2015 Edition
OpenNTF 2015 Edition
 
1. Cloud Native Meetup Innsbruck, 23.11.2023
1. Cloud Native Meetup Innsbruck, 23.11.20231. Cloud Native Meetup Innsbruck, 23.11.2023
1. Cloud Native Meetup Innsbruck, 23.11.2023
 
Javaland 2016 - Flyway vs. LiquiBase - Battle der Datenbankmigrationstools
Javaland 2016 - Flyway vs. LiquiBase - Battle der DatenbankmigrationstoolsJavaland 2016 - Flyway vs. LiquiBase - Battle der Datenbankmigrationstools
Javaland 2016 - Flyway vs. LiquiBase - Battle der Datenbankmigrationstools
 
Foreman: Klassen und Parametrisierung in Puppet (Webinar vom 20. Mai 2016)
Foreman: Klassen und Parametrisierung in Puppet (Webinar vom 20. Mai 2016)Foreman: Klassen und Parametrisierung in Puppet (Webinar vom 20. Mai 2016)
Foreman: Klassen und Parametrisierung in Puppet (Webinar vom 20. Mai 2016)
 
Groupware Linuxtag 2008 Cb
Groupware Linuxtag 2008 CbGroupware Linuxtag 2008 Cb
Groupware Linuxtag 2008 Cb
 
Trivadis TechEvent 2016 Ablösung einer Tivoli Monitoring Umgebung mit OpenSou...
Trivadis TechEvent 2016 Ablösung einer Tivoli Monitoring Umgebung mit OpenSou...Trivadis TechEvent 2016 Ablösung einer Tivoli Monitoring Umgebung mit OpenSou...
Trivadis TechEvent 2016 Ablösung einer Tivoli Monitoring Umgebung mit OpenSou...
 
Bernhard Wick - appserver.io - code.talks 2015
 Bernhard Wick - appserver.io - code.talks 2015 Bernhard Wick - appserver.io - code.talks 2015
Bernhard Wick - appserver.io - code.talks 2015
 
Versionskontrolle mit Apache Subversion
Versionskontrolle mit Apache SubversionVersionskontrolle mit Apache Subversion
Versionskontrolle mit Apache Subversion
 
FMK2015: Einführung in Codeversionierungssysteme by Thomas Hirt
FMK2015: Einführung in Codeversionierungssysteme by Thomas HirtFMK2015: Einführung in Codeversionierungssysteme by Thomas Hirt
FMK2015: Einführung in Codeversionierungssysteme by Thomas Hirt
 
Git class german / english
Git class german / englishGit class german / english
Git class german / english
 
Agile Entwicklungsumgebung mit DVCS, Jenkins und Trello - Agile Bodensee Konf...
Agile Entwicklungsumgebung mit DVCS, Jenkins und Trello - Agile Bodensee Konf...Agile Entwicklungsumgebung mit DVCS, Jenkins und Trello - Agile Bodensee Konf...
Agile Entwicklungsumgebung mit DVCS, Jenkins und Trello - Agile Bodensee Konf...
 
Agile Softwareentwicklung mit Rails
Agile Softwareentwicklung mit RailsAgile Softwareentwicklung mit Rails
Agile Softwareentwicklung mit Rails
 
PHP5 und Oracle
PHP5 und OraclePHP5 und Oracle
PHP5 und Oracle
 
Quo vadis DevOps
Quo vadis DevOpsQuo vadis DevOps
Quo vadis DevOps
 

Git vs SVN DevCon 2011

  • 2. 2 Wer bin ich? Mario Müller (@xenji) TWT Interactive GmbH - Düsseldorf Java, PHP, Python, Groovy FirstSpirit, JEE, Zend Framework, Oxid NoSQL FTW! Mac-Head & Linux Enthusiast Github: http://github.com/xenji
  • 3. 3
  • 7. 4 Warum Versionierung? Protokollierung Archivierung Wiederherstellung
  • 10. 6 Merkmale Es gibt mehr als eine Realität (ein Server, n Workingcopies)
  • 11. 6 Merkmale Es gibt mehr als eine Realität (ein Server, n Workingcopies) Revisionen werden zentral verwaltet, Versionsnummern zentral vergeben
  • 12. 6 Merkmale Es gibt mehr als eine Realität (ein Server, n Workingcopies) Revisionen werden zentral verwaltet, Versionsnummern zentral vergeben Vergleiche sind nur direkt mit dem Server möglich
  • 13. 6 Merkmale Es gibt mehr als eine Realität (ein Server, n Workingcopies) Revisionen werden zentral verwaltet, Versionsnummern zentral vergeben Vergleiche sind nur direkt mit dem Server möglich Häufig wird ein Delta-basiertes Speicherverfahren verwendet, so bleiben die zu übertragenden Mengen gering
  • 14. 6 Merkmale Es gibt mehr als eine Realität (ein Server, n Workingcopies) Revisionen werden zentral verwaltet, Versionsnummern zentral vergeben Vergleiche sind nur direkt mit dem Server möglich Häufig wird ein Delta-basiertes Speicherverfahren verwendet, so bleiben die zu übertragenden Mengen gering Die Versionshistorie ist nur auf dem Server verfügbar
  • 15. 6 Merkmale Es gibt mehr als eine Realität (ein Server, n Workingcopies) Revisionen werden zentral verwaltet, Versionsnummern zentral vergeben Vergleiche sind nur direkt mit dem Server möglich Häufig wird ein Delta-basiertes Speicherverfahren verwendet, so bleiben die zu übertragenden Mengen gering Die Versionshistorie ist nur auf dem Server verfügbar Die Zentralisierung ermöglicht ein Zugriffs- und Rechtemanagement
  • 18. 8 Merkmale Es gibt viele, mehrdimensionale Realitäten (Multi-Master, Multi- Workingcopy)
  • 19. 8 Merkmale Es gibt viele, mehrdimensionale Realitäten (Multi-Master, Multi- Workingcopy) Jede Workingcopy ist ein kompletter Klon mit allen Versionen
  • 20. 8 Merkmale Es gibt viele, mehrdimensionale Realitäten (Multi-Master, Multi- Workingcopy) Jede Workingcopy ist ein kompletter Klon mit allen Versionen Theoretisch gibt es keinen zentralen Server
  • 21. 8 Merkmale Es gibt viele, mehrdimensionale Realitäten (Multi-Master, Multi- Workingcopy) Jede Workingcopy ist ein kompletter Klon mit allen Versionen Theoretisch gibt es keinen zentralen Server Das Repository ist lokal und unabhängig
  • 22. 8 Merkmale Es gibt viele, mehrdimensionale Realitäten (Multi-Master, Multi- Workingcopy) Jede Workingcopy ist ein kompletter Klon mit allen Versionen Theoretisch gibt es keinen zentralen Server Das Repository ist lokal und unabhängig Alle Operationen sind lokal
  • 23. 8 Merkmale Es gibt viele, mehrdimensionale Realitäten (Multi-Master, Multi- Workingcopy) Jede Workingcopy ist ein kompletter Klon mit allen Versionen Theoretisch gibt es keinen zentralen Server Das Repository ist lokal und unabhängig Alle Operationen sind lokal Es ist ein Mechanismus zur Synchronisierung mit einer entfernten Instanz vorhanden
  • 24. 9 • Active Responses: The total of responses excluding "No Opinion". (eg for git: 65 + 19 + 1 + 0) • Approval %: The sum of best and ok responses divided by active responses, expressed as a percentage. (eg for git: (65 + 19) / 85) Approval in % VCS Survey (von M. Fowler)
  • 25. 9 • Active Responses: The total of responses excluding "No Opinion". (eg for git: 65 + 19 + 1 + 0) • Approval %: The sum of best and ok responses divided by active responses, expressed as a percentage. (eg for git: (65 + 19) / 85) Approval in % VCS Survey (von M. Fowler)
  • 28. 11 Geschichte Version 1.0 am 20. Oktober 2000
  • 29. 11 Geschichte Version 1.0 am 20. Oktober 2000 Enwickelt von CollabNet
  • 30. 11 Geschichte Version 1.0 am 20. Oktober 2000 Enwickelt von CollabNet Seit dem 10. Feb. 2010 ein Apache Top- Level Projekt
  • 31. 11 Geschichte Version 1.0 am 20. Oktober 2000 Enwickelt von CollabNet Seit dem 10. Feb. 2010 ein Apache Top- Level Projekt Weiterentwicklung vom ebenfalls zentralen Versionierungstool „CVS“
  • 33. 12 Begriffe Branch Changeset Revision Tag
  • 37. 14 Vorteile Kostenfrei erhältlich Erprobt im OpenSource- und Unternehmens- alltag
  • 38. 14 Vorteile Kostenfrei erhältlich Erprobt im OpenSource- und Unternehmens- alltag Stetige Entwicklung als Apache Projekt gesichert
  • 39. 14 Vorteile Kostenfrei erhältlich Erprobt im OpenSource- und Unternehmens- alltag Stetige Entwicklung als Apache Projekt gesichert Hohe Akzeptanz
  • 40. 14 Vorteile Kostenfrei erhältlich Erprobt im OpenSource- und Unternehmens- alltag Stetige Entwicklung als Apache Projekt gesichert Hohe Akzeptanz Unterstützt von vielen IDEs, Clients und Project Hosting Anbietern (z. B. SourceForge)
  • 41. 14 Vorteile Kostenfrei erhältlich Erprobt im OpenSource- und Unternehmens- alltag Stetige Entwicklung als Apache Projekt gesichert Hohe Akzeptanz Unterstützt von vielen IDEs, Clients und Project Hosting Anbietern (z. B. SourceForge) Einfache Handhabung
  • 42. 14 Vorteile Kostenfrei erhältlich Erprobt im OpenSource- und Unternehmens- alltag Stetige Entwicklung als Apache Projekt gesichert Hohe Akzeptanz Unterstützt von vielen IDEs, Clients und Project Hosting Anbietern (z. B. SourceForge) Einfache Handhabung Authc & Authz abbildbar
  • 45. 15 Einschränkungen Ohne Server geht nichts Es werden nur Deltas verwaltet
  • 46. 15 Einschränkungen Ohne Server geht nichts Es werden nur Deltas verwaltet Automatisches Mergen ist in vielen Fällen keine schöne Erfahrung
  • 47. 15 Einschränkungen Ohne Server geht nichts Es werden nur Deltas verwaltet Automatisches Mergen ist in vielen Fällen keine schöne Erfahrung Jeder Commit muss einzeln gemergt werden
  • 48. 16 Alleinstellungsmerkmale Properties auf Datei / Verzeichnisebene svn:externals um entfernte Repositories transparent „hineinzulinken“
  • 50. 18
  • 51. 18
  • 54. 19 Linus Torvalds Initiator der Linux - Bewegung
  • 55. 19 Linus Torvalds Initiator der Linux - Bewegung Wahrscheinlich der berühmteste Entwickler der heutigen Zeit
  • 56. 19 Linus Torvalds Initiator der Linux - Bewegung Wahrscheinlich der berühmteste Entwickler der heutigen Zeit Entwickelt aktiv am Linux Kernel
  • 57. 19 Linus Torvalds Initiator der Linux - Bewegung Wahrscheinlich der berühmteste Entwickler der heutigen Zeit Entwickelt aktiv am Linux Kernel Ist Erfinder von Git, jedoch nicht mehr der Hauptentwickler
  • 58. 20 Geschichte Gestartet im April 2005 um den damals verwendeten BitKeeper zu ersetzen Aktuell in der Version 1.7.x verfügbar Schnell adaptiert worden (GitHub, Gitorious)
  • 60. 21 Begriffe Clone Pull Staging Push Remote
  • 61. 22 Clone Unter einem „Clone“ versteht man das Spiegeln einer vollständigen Historie in ein (lokales) Repository. Dabei wird jeder Commit, jeder Tag und jeder Branch mit einbezogen.
  • 62. 23 Remotes Branches werden in Git in zwei Zuständen verwaltet. Lokal und Remote. Ein Remote Branch ist eine Referenz auf einen lokalen Branch in einem entfernten Repository. Remotes werden interessant, wenn mehrere Entwickler am selben Branch arbeiten und den entwickelten Quellcode verteilen wollen.
  • 63. 24 Staging Hinzufügen von Dateien in einen virtuellen Bereich Alle Daten im Stage kommen in den nächsten Commit Commits sind dadurch auf CLI Ebene „zusammenbaubar“
  • 64. 25 Push Übermittelt den Inhalt eines Branches aus einem lokalen Repository an ein Remote Repository Transferiert Commit-By-Commit Aus Sicht des Remote Repositories sieht es aus, als hätte die Person lokal Commit‘ed
  • 65. 26 Pull „Zieht“ Änderungen aus einem Remote Repository Wenn mehrere Branches aus einem Remote existieren (z. B. nach einem Clone eines Repositories mit mehreren Branches), werden diese ebenfalls „gezogen“ Explizites „ziehen“ ist möglich -> nur „master“, nur „2.1.0“, nur „testing“
  • 67. 27 Funktionsweise Git Repositories bestehen aus drei Komponenten: Tree Objekte Commit Objekte Blobs (Binary Large OBjects) Jedes Objekt bekommt eine repository-weit eindeutige ID in From einer SHA-1 Prüfsumme
  • 70. 29 Vorteile Schnell, da eine Vielzahl der Operationen lokal ist Unabhängig, da kein Server benötigt wird Sicher, da jeder alles besitzt (= verteiltes Backup) Objekt-orientierte Sichtweise auf die Teilstücke des Versionsbaumes Vollkommene Freiheit, da jeder sich selbst organisieren kann.
  • 71. 30 Einschränkungen Autorisierung per SSH unter Windows nur per PuTTY - Toolbox Einsatz unter Windows nur per mingw Kaum gute GUIs oder IDE Plugins „Ungemütliche Lernkurve“ Vollkommene Freiheit
  • 73. 32 Team Organisation Es sind verschiedene Ansätze zur Organisation von Teams entstanden Viele sind auch in der zentralisierten Welt vorhanden, aber wenig genutzt Canonical hat mit der Veröffentlichung von Bazaar in Verbindung mit Launchpad sehr gute Arbeit geleistet und mögliche Workflows dokumentiert (http:// wiki.bazaar.canonical.com/Workflows) Hier stelle ich 3 Modelle beispielhaft vor
  • 74. 33 Workflow - Ein User Der „Freelancer - Workflow“ Gut für einzelne Programmierer, die Weder Zeit noch Resourcen für das Setup eines SVN Servers haben Schlecht, wenn man kein Backup hat und die Festplatte / das Speichermedium verliert
  • 75. 34 Workflow - kleines Team Es gibt ein „blessed“ Repository, also ein zentrales Repository Jeder klont sich dieses Repository ein mal Ab dann werden Änderungen per push & pull verteilt Sinnvoll für kleine Teams (zwischen 2 und 6 Leuten) mit überschaubaren Commit- Zahlen
  • 78. 37 Workflow Integ. Manager / Dictator Für große Teams geeignet Hoher Management-Aufwand Hohe Parallelisierung Sehr guter Zustand des Repository Der Integration Manager lohnt sich ab 10-15 Personen Das Dictator Modell lohnt sich erst bei 50+ Personen
  • 80. 39 Anforderungen an Git im Unternehmen Authentifizierung (LDAP, ADS, etc) Autorisierung (Gruppen, Rollen, Rechte) Automatisierte Backups Support Akzeptanz
  • 81. 40 Authentifizierung Ist mit Linux - Bordmitteln anstrengend Gitosis und Gitorious bieten Hilfe Integrierte directory-basierte Lösungen sind keine Vorhanden HTTP Push ermöglicht jedoch Autorisierung per Webserver Erweiterte Authentifizierung kann man per Hooks hacken
  • 82. 41 Autorisierung Gitosis oder Gitorious helfen, man verlagert aber nur die Aufgabe Keine Mechanismen implementiert Implementierung per Post-Commit / Post-Push Hooks
  • 83. 42 Backups mmue-mbp:ProwlPHP mario$ git fast-export --all | less Option 1: commit refs/heads/master mark :281 Einfach kopieren author Mario Mueller <mario.mueller.work@gmail.com> 1305968206 +0200 committer Mario Mueller <mario.mueller.work@gmail.com> 1305968206 +0200 data 55 Option 2: Resolved #6, but need some relyability fixing later on from :279 git fast-export --all M 100644 :280 src/Prowl/Connector.php
  • 85. 44 Bazaar Von Canonical (Ubuntu) in Python geschrieben Aktivste Plattform: Launchpad Einfacher in der Handhabe Gefühlt langsamer als Git
  • 86. 45 Mercurial Wir seit Q4 2010 von Atlassian weiter entwickelt Ist ebenfalls in Python geschrieben Aktivste Plattform: Bitbucket, Google Code Ist einfacher als Git, einfacher als Bazaar Performanter als Bazaar, wenig langsamer als Git
  • 87. 46 Vielen Dank für die Aufmersamkeit!

Hinweis der Redaktion

  1. \n
  2. \n
  3. \n
  4. Protokoll. von &amp;#xC4;nderungen\nDauerhafte Archiv.\nWiederherst. im Ernstfall oder auch um zu vergleichen!\n
  5. Protokoll. von &amp;#xC4;nderungen\nDauerhafte Archiv.\nWiederherst. im Ernstfall oder auch um zu vergleichen!\n
  6. Protokoll. von &amp;#xC4;nderungen\nDauerhafte Archiv.\nWiederherst. im Ernstfall oder auch um zu vergleichen!\n
  7. \n
  8. \n
  9. \n
  10. \n
  11. \n
  12. \n
  13. \n
  14. \n
  15. \n
  16. \n
  17. \n
  18. \n
  19. \n
  20. \n
  21. \n
  22. \n
  23. \n
  24. \n
  25. \n
  26. \n
  27. \n
  28. \n
  29. \n
  30. \n
  31. \n
  32. \n
  33. \n
  34. \n
  35. \n
  36. \n
  37. \n
  38. \n
  39. \n
  40. \n
  41. \n
  42. \n
  43. \n
  44. \n
  45. \n
  46. \n
  47. \n
  48. \n
  49. \n
  50. \n
  51. \n
  52. \n
  53. \n
  54. \n
  55. \n
  56. \n
  57. \n
  58. \n
  59. \n
  60. \n
  61. \n
  62. \n
  63. \n
  64. \n
  65. \n
  66. \n
  67. \n
  68. \n
  69. \n
  70. \n
  71. \n
  72. \n
  73. \n
  74. \n
  75. \n
  76. \n
  77. \n
  78. \n
  79. \n
  80. \n
  81. \n
  82. \n
  83. \n