SlideShare ist ein Scribd-Unternehmen logo
TYPO3-Camp Stuttgart - 20.-22. Mai 2011   Inspiring people to
TYPO3-Entwicklung mit Git und Gerrit      share
Verteilte Softwareentwicklung und -reviews
          in der TYPO3-Community

                   Steffen Gebert <steffen.gebert@typo3.org>
                               Twitter: @StGebert




                    TYPO3-Camp Stuttgart - 20./22. Mai 2011


                                                               Inspiring people to
TYPO3-Entwicklung mit Git und Gerrit                           share
Einführung


Vorstellung


         Steffen Gebert
       TYPO3 Core Team Member

         Diplom-Informatiker

 Doktorand / Wissenschaftl. Mitarbeiter
         an der Uni Würzburg




                                          Inspiring people to
TYPO3-Entwicklung mit Git und Gerrit      share
Einführung


Überblick
     Software-Reviews

     Git & Gerrit

     Workflows & Konventionen

     Weitere Informationen

     Fragen




                                       Inspiring people to
TYPO3-Entwicklung mit Git und Gerrit   share
Software-Reviews




Foto: mario.rimann
http://www.flickr.com/photos/mrimann/3534514430/



                                                                  Inspiring people to
                       TYPO3-Entwicklung mit Git und Gerrit       share
Einführung


Software-Reviews
     Qualitätssicherung

     Vier (oder sechs) Augen sehen mehr als zwei

     Fehler werden immer gemacht - man muss sie nur finden!

     Aufnahme in offiziellen Quellcode erst nach erfolgtem Review

     Verschiedene Arten des Reviews, u.a.

         Funktionalität

         Code



                                                    Inspiring people to
TYPO3-Entwicklung mit Git und Gerrit                share
Software-Reviews


Funktionales Review
     Eine Änderung...

         behebt den Fehler / ermöglicht ein neues Feature

         stört keine andere Funktionalität




                                                      Inspiring people to
TYPO3-Entwicklung mit Git und Gerrit                  share
Software-Reviews


Code-Review
     Eine Änderung am Quellcode...

         ist korrekt
         (macht das, was sie tun soll und nichts anderes)

         ist sinnvoll programmiert
         (Robustheit, Performance, etc.)

         entspricht gewünschten Programmierstandards
         (z.B. TYPO3 Coding Guide Lines)

     Testmethoden

         Automatische Analyse (v.a. CGL)

         Durchlesen

                                                            Inspiring people to
TYPO3-Entwicklung mit Git und Gerrit                        share
Software-Reviews


    Review per Mailingliste (damals...)
         “Requests for Comments” (RFCs) per core-team-Mailingliste

Formalitäten /
Konventionen
Software-Reviews


Review per Mailingliste




     Voting



    SVN Commit
Software-Reviews


Mailingliste: Ordnung halten
     man kämpfte sich so durch...




                                       Inspiring people to
TYPO3-Entwicklung mit Git und Gerrit   share
Git & Gerrit


Migration zu Git & Gerrit
       Präsentation auf Core-Team-Meeting im Juli 2010

           Einigkeit über Einführung

       Testkaninchen FLOW3 ab Aug. 2010

       Migration für v4 während Code-Sprint am 1. März 2011


       Erwartete Vorteile

           Mehr Übersicht für Reviewer

           Einfachere Entwicklung/Integration großer Features


                                                         Inspiring people to
TYPO3-Entwicklung mit Git und Gerrit                     share
Foto: tnimalan
                                                               Git & Gerrit im Einsatz
http://www.sxc.hu/photo/1275444



                                                                        Inspiring people to
                        TYPO3-Entwicklung mit Git und Gerrit            share
Git & Gerrit


Git                                               Lokale Kopie des
       Verteiltes Versionskontrollsystem       gesamten Repositories

       Entwickelt für die Linux-Kernelentwicklung von Linus Thorvalds

       Sehr mächtig
                                               Von Nerds für Nerds :-)

       Komplexer als Subversion

       Basiswissen wird im Folgenden vorausgesetzt
       Danke an Tobias Günther für den Crashkurs




                                                       Inspiring people to
TYPO3-Entwicklung mit Git und Gerrit                   share
lokale Aktion     Veröffentlichung




                                           Inspiring people to
TYPO3-Entwicklung mit Git und Gerrit       share
Git & Gerrit


Git: Wiederholung
       “trunk” heißt jetzt “master”

       Commits werden über SHA-1 identifiziert

       Ein Commit ist lokal - jeder darf committen

       Committs lassen sich nachträglich ändern

       Branching ist alltäglich




                                                                      Foto: texas_mustang
                                             http://www.flickr.com/photos/astros/58932360/




                                                                          Inspiring people to
TYPO3-Entwicklung mit Git und Gerrit                                     share
Git & Gerrit


Repository klonen
       git clone --recursive
         git://git.typo3.org/TYPO3v4/Core.git

       Meta-Informationen landen im Verzeichnis .git/

       Ausgecheckter Branch: master

       Gesamte History seit TYPO3 3.6 enthalten




                                                    Inspiring people to
TYPO3-Entwicklung mit Git und Gerrit               share
Git & Gerrit


Gerrit
       Web-basiertes Code-Review Tool

       Für Android-Entwicklung von Google entwickelt

       Baut auf Git als VCS auf

       Wacht über das offizielle Git-Repository

       Hauptgrund für die Migration des TYPO3-Codes nach Git




                                                       Inspiring people to
TYPO3-Entwicklung mit Git und Gerrit                   share
GIT “standalone”




GIT & Gerrit




                                              Inspiring people to
       TYPO3-Entwicklung mit Git und Gerrit   share
Git & Gerrit


Gerrit
       Momentan genutzt für

           TYPO3v4: Core, Workspaces, Extbase, Fluid

           Extensions: community, extension_builder (ehem.
           extbase_kickstarter)

           FLOW3

           TYPO3v5



       http://review.typo3.org


                                                       Inspiring people to
TYPO3-Entwicklung mit Git und Gerrit                   share
Git & Gerrit


    Gerrit Übersicht
           ´



o
o
Git & Gerrit


Gerrit Change-Id
       Jeder Change-Request hat eindeutige Change-Id




                                                       Inspiring people to
TYPO3-Entwicklung mit Git und Gerrit                   share
Patches reviewen




Foto: stylesr1
http://www.sxc.hu/photo/605324



                                                                      Inspiring people to
                        TYPO3-Entwicklung mit Git und Gerrit          share
Git & Gerrit


Änderung reviewen
Git & Gerrit


Änderung reviewen




                    Commit Message
                    ➪ Konventionen
Git & Gerrit


Änderung reviewen




               Reviews
Git & Gerrit


Änderung reviewen




                Verschiedene
               Patch-Versionen
Git & Gerrit


Code Review


               Diff aufrufen
Git & Gerrit


Diff-Ansicht




                                       Inspiring people to
TYPO3-Entwicklung mit Git und Gerrit   share
Git & Gerrit


Diff-Ansicht
       Inline-Kommentare mit Doppelklick




                                           Inspiring people to
TYPO3-Entwicklung mit Git und Gerrit       share
Git & Gerrit


Funktionaler Test

               checkout wählen



                                 kopieren
Git & Gerrit


Funktionaler Test
       Befehlszeile ausführen

       Exakter Stand wird ausgecheckt, incl. Änderung

       Testen!




                                                        Inspiring people to
TYPO3-Entwicklung mit Git und Gerrit                    share
Git & Gerrit


Voting abgeben
Git & Gerrit


 Voting abgeben


                    Funktionaler Test
                       -1/0/+1

                      Code Review
                       -1/0/+1

 Anmerkungen -
  besonders bei
negativem Review!
Git & Gerrit


 Voting abgeben




                    Members only..




 Anmerkungen -
  besonders bei
negativem Review!
Foto: csremedy
                                                               Eigene Patches senden
http://www.sxc.hu/photo/1267108



                                                                        Inspiring people to
                        TYPO3-Entwicklung mit Git und Gerrit            share
Git & Gerrit


Git konfigurieren
       git config --global user.name "Your Name"
       git config --global user.email "foo@example.com"

                muss mit Adresse in
               Gerrit übereinstimmen




                                        Inspiring people to
TYPO3-Entwicklung mit Git und Gerrit    share
Git & Gerrit


Git konfigurieren
       git config --global user.name "Your Name"
       git config --global user.email "foo@example.com"


       git config --global branch.autosetuprebase remote
       git config --global
         url."ssh://<username>@review.typo3.org:29418"
         .pushInsteadOf git://git.typo3.org




                                        Inspiring people to
TYPO3-Entwicklung mit Git und Gerrit    share
Git & Gerrit


Git konfigurieren
       git config --global user.name "Your Name"
       git config --global user.email "foo@example.com"


       git config --global branch.autosetuprebase remote
       git config --global
         url."ssh://<username>@review.typo3.org:29418"
         .pushInsteadOf git://git.typo3.org




                                        Inspiring people to
TYPO3-Entwicklung mit Git und Gerrit    share
Git & Gerrit


Git konfigurieren
       git config --global user.name "Your Name"
       git config --global user.email "foo@example.com"
                                         Push URL
       git config --global branch.autosetuprebase remote
       git config --global
         url."ssh://<username>@review.typo3.org:29418"
         .pushInsteadOf git://git.typo3.org


                                       Fetch/Pull URL




                                         Inspiring people to
TYPO3-Entwicklung mit Git und Gerrit     share
Git & Gerrit


Gerrit: SSH-Key festlegen
Git & Gerrit


Gerrit Change-Id
       Jeder Change-Request hat eindeutige Change-Id




                                                       Inspiring people to
TYPO3-Entwicklung mit Git und Gerrit                   share
Git & Gerrit


Gerrit Change-Id
       Automatische Generierung über Git Commit Hook
                                               submodule ≅
       cd typo3_src-git
       scp -p -P 29418                         svn:externals
         <username>@review.typo3.org:hooks/commit-msg
         .git/hooks/

       git submodule update --init
       git submodule foreach 'scp -p -P 29418
         <username>@review.typo3.org:hooks/commit-msg
         .git/hooks/'




                                                       Inspiring people to
TYPO3-Entwicklung mit Git und Gerrit                   share
Git & Gerrit


Eigene Änderung senden
Git & Gerrit


Eigene Änderung senden
       Aktuellen Stand bekommen
       git checkout <release-branch>           z.B. master
       git pull
                                               TYPO3_4-5
       Änderung am Code durchführen            TYPO3_4-4
       Änderung reviewen
       git diff

       Committen
       git commit -a




                                       Inspiring people to
TYPO3-Entwicklung mit Git und Gerrit   share
Git & Gerrit


Commit Message Format
       CM verbleibt auf ewig in der History

       Spezielle Konventionen für Commit Message

        [BUGFIX] Recursion error when including TypoScript files
                                       Text
        When editing TypoScript in the template module and using
        the "Include TypoScript file content" option with more than 9
        files, then the 10th and all later files gets screwed up.

        Resolves: #25374
        Releases: 4.6, 4.5



                                                         Inspiring people to
TYPO3-Entwicklung mit Git und Gerrit                    share
Git & Gerrit


Commit Message Hook
       git log -1
       zeigt letzte Commit Message an

       Change-Id-Zeile wurde automatisch hinzugefügt
       (ansonsten weigert Gerrit später die Annahme)


        [BUGFIX] Recursion error when including TypoScript files

        When editing TypoScript ...

        Change-Id: 69fb8866b94c75b3b73395cfa4bd0a900e6ab53c
        Resolves: #25374
        Releases: 4.6, 4.5


                                                        Inspiring people to
TYPO3-Entwicklung mit Git und Gerrit                    share
Git & Gerrit


  Änderung pushen
         git push origin HEAD:refs/for/<release-branch>




 gewünschter Remote
alternativ z.B. github




                                                          Inspiring people to
  TYPO3-Entwicklung mit Git und Gerrit                    share
Git & Gerrit


Änderung pushen
       git push origin HEAD:refs/for/<release-branch>

                                                             z.B. master
                                                             TYPO3_4-5
Stand des eigenen                Pseudo-Branch               TYPO3_4-4
  Working-Tree                      in Gerrit


       Gerrit antwortet mit Erfolgsmeldung “New Changes” und
       Review-URL




                                                        Inspiring people to
TYPO3-Entwicklung mit Git und Gerrit                    share
Workflows & Konventionen




                                       Inspiring people to
TYPO3-Entwicklung mit Git und Gerrit   share
Workflows & Konventionen


Review-Workflow
     Issue in Forge eröffnen

     Commit machen, Pushen

     Auf Reviews warten

         Nachbessern mit neuer Patch-Version oder

         freuen :-)

     Ggf. weitere Branches pushen




                                                    Inspiring people to
TYPO3-Entwicklung mit Git und Gerrit                share
Workflows & Konventionen


Grundsätzliches
     Change Request bezieht sich jeweils auf einen Branch

     Nur ein Eintrag für alle Branches in Forge erforderlich

     Nach erfolgreichem Review automatisch im nächsten Release




                                                       Inspiring people to
TYPO3-Entwicklung mit Git und Gerrit                   share
Workflows & Konventionen


Aktive Branches
     master (wird später TYPO3_4-6 abgespalten)

     TYPO3_4-5 (current stable, LTS)

     TYPO3_4-4 (oldstable)

     TYPO3_4-3 (oldoldstable)




                                                  Inspiring people to
TYPO3-Entwicklung mit Git und Gerrit              share
Workflows & Konventionen


In welchen Branch..?
     Features, Änderungen des Verhaltens

         master (keine Features in veröffentlichten Versionen)

     Bugfixes

         master (4.6)                     master nicht
         current stable (4.5)              vergessen!

         LTS (4.5)

         ältere Branches nach Belieben (4.4, 4.3)



                                                       Inspiring people to
TYPO3-Entwicklung mit Git und Gerrit                   share
Workflows & Konventionen


Erforderliche Reviews
     Change Request wird gemerged bei jeweils mindestens


                                       Verified   Code Review

     Team-Mitglied                     ✓ (+2)         ✓ (+2)
         Beliebiger
                                         +1                +1
         Reviewer
     Weitere Reviews sind willkommen!

     Übernahme (“Submit”) durch Team-Mitglied in Gerrit

                                                    Inspiring people to
TYPO3-Entwicklung mit Git und Gerrit                share
Workflows & Konventionen


Mr. Hudson & Mr. Jenkins
     Jenkins Continuous Integration Server (vormals Hudson)

     Automatisiertes Review

     Momentane Tests

         Coding Guide Lines

         PHP lint

     TODO

         Unit Tests

     http://ci.typo3.org

                                                    Inspiring people to
TYPO3-Entwicklung mit Git und Gerrit                share
Weitere Informationen
Foto: Egilshay
http://www.sxc.hu/photo/1095604



                                                                        Inspiring people to
                        TYPO3-Entwicklung mit Git und Gerrit            share
Weitere Informationen


Git-Probleme
      Screenshot Google




      Pro Git Buch
      http://progit.org (kostenlos)




                                       Inspiring people to
TYPO3-Entwicklung mit Git und Gerrit   share
Weitere Informationen


Wiki: “Git” landing page




                        Git Grundlagen
Weitere Informationen


Wiki: “Git” landing page




                        Quellcode über
                         Git beziehen
Weitere Informationen


Wiki: “Git” landing page




                          Contributing
                        (interessant ;-))
Weitere Informationen


Wiki: “Git” landing page




                           Workflow
                        nochmals erklärt
Weitere Informationen


Wiki: “Git” landing page




                        Klappt was nicht?
Weitere Informationen


Wiki: “Git” landing page




                        nice to know...
Weitere Informationen


Wiki: “Git” landing page




                        Begrifflichkeiten
                             erklärt
Weitere Informationen


Wiki: Tutorials




                        toll!!
Weitere Informationen


Wiki: Tutorials




                        doof...
Weitere Informationen


Wiki: Ausfürliche CLI-Anleitung
Weitere Informationen


Probleme?
      Fragen!

      Mailinglisten / Newsgroups
      typo3.core
      typo3.dev

      lists.typo3.org




                                       Inspiring people to
TYPO3-Entwicklung mit Git und Gerrit   share
Weitere Informationen


Nicht angesprochen...
      Neue Patchversion erstellen      modifiziert vorherigen
      git commit --amend                     Commit




                                             Inspiring people to
TYPO3-Entwicklung mit Git und Gerrit         share
?????
                                    ??
                                   ?
                                   ??
                                 ??
                                 ?


                                         Inspiring people to
TYPO3-Entwicklung mit Git und Gerrit     share
inspiring people to share.

Weitere ähnliche Inhalte

Andere mochten auch

'Git started' für Fortgeschrittene!
'Git started' für Fortgeschrittene!'Git started' für Fortgeschrittene!
'Git started' für Fortgeschrittene!
Benjamin Schmid
 
git - eine praktische Einführung
git - eine praktische Einführunggit - eine praktische Einführung
git - eine praktische Einführung
Marcel Eichner
 
Sei (k)ein Blödmann und nimm Git!
Sei (k)ein Blödmann und nimm Git!Sei (k)ein Blödmann und nimm Git!
Sei (k)ein Blödmann und nimm Git!
Stefan Imhoff
 
Git vs SVN - Eine vergleichende Einführung
Git vs SVN - Eine vergleichende EinführungGit vs SVN - Eine vergleichende Einführung
Git vs SVN - Eine vergleichende Einführung
Mario Müller
 
Git im team
Git im teamGit im team
Git im team
Nicole Cordes
 
Verteilte Versionskontrolle mit Git
Verteilte Versionskontrolle mit GitVerteilte Versionskontrolle mit Git
Verteilte Versionskontrolle mit Git
Jan Dittberner
 
Do it the_git_way
Do it the_git_wayDo it the_git_way
Do it the_git_way
Peter Ukena
 
Gitlab
GitlabGitlab
Gitlab
heiglandreas
 
Überblick über aktuelle Versionsmanagementsysteme
Überblick über aktuelle VersionsmanagementsystemeÜberblick über aktuelle Versionsmanagementsysteme
Überblick über aktuelle Versionsmanagementsysteme
Andreas Schreiber
 
The development workflow of git github for beginners
The development workflow of git github for beginnersThe development workflow of git github for beginners
The development workflow of git github for beginners
Gunjan Patel
 
Git workflow step by step
Git workflow step by stepGit workflow step by step
Git workflow step by step
Binh Quan Duc
 
GIT / SVN
GIT / SVNGIT / SVN
GIT / SVN
Torben Brodt
 
Ultimate Git Workflow - Seoul 2015
Ultimate Git Workflow - Seoul 2015Ultimate Git Workflow - Seoul 2015
Ultimate Git Workflow - Seoul 2015
Atlassian 대한민국
 
Git and Git Workflow Models as Catalysts of Software Development
Git and Git Workflow Models as Catalysts of Software DevelopmentGit and Git Workflow Models as Catalysts of Software Development
Git and Git Workflow Models as Catalysts of Software Development
Lemi Orhan Ergin
 
ClearCase Basics
ClearCase BasicsClearCase Basics
ClearCase Basics
Abhishek Srivastava
 
Git 101: Git and GitHub for Beginners
Git 101: Git and GitHub for Beginners Git 101: Git and GitHub for Beginners
Git 101: Git and GitHub for Beginners
HubSpot
 
Einführung in Git - GameCamp Munich 2011
Einführung in Git - GameCamp Munich 2011Einführung in Git - GameCamp Munich 2011
Einführung in Git - GameCamp Munich 2011
renebruns
 
Subversion -> SVK -> Git
Subversion -> SVK -> GitSubversion -> SVK -> Git
Subversion -> SVK -> Git
Kota Sakoda
 
Git Grundlagen
Git GrundlagenGit Grundlagen
Git Grundlagen
Benjamin Schürmann
 

Andere mochten auch (20)

'Git started' für Fortgeschrittene!
'Git started' für Fortgeschrittene!'Git started' für Fortgeschrittene!
'Git started' für Fortgeschrittene!
 
git - eine praktische Einführung
git - eine praktische Einführunggit - eine praktische Einführung
git - eine praktische Einführung
 
Sei (k)ein Blödmann und nimm Git!
Sei (k)ein Blödmann und nimm Git!Sei (k)ein Blödmann und nimm Git!
Sei (k)ein Blödmann und nimm Git!
 
Git vs SVN - Eine vergleichende Einführung
Git vs SVN - Eine vergleichende EinführungGit vs SVN - Eine vergleichende Einführung
Git vs SVN - Eine vergleichende Einführung
 
Git im team
Git im teamGit im team
Git im team
 
Verteilte Versionskontrolle mit Git
Verteilte Versionskontrolle mit GitVerteilte Versionskontrolle mit Git
Verteilte Versionskontrolle mit Git
 
Do it the_git_way
Do it the_git_wayDo it the_git_way
Do it the_git_way
 
Gitlab
GitlabGitlab
Gitlab
 
Überblick über aktuelle Versionsmanagementsysteme
Überblick über aktuelle VersionsmanagementsystemeÜberblick über aktuelle Versionsmanagementsysteme
Überblick über aktuelle Versionsmanagementsysteme
 
Einstieg in git
Einstieg in gitEinstieg in git
Einstieg in git
 
The development workflow of git github for beginners
The development workflow of git github for beginnersThe development workflow of git github for beginners
The development workflow of git github for beginners
 
Git workflow step by step
Git workflow step by stepGit workflow step by step
Git workflow step by step
 
GIT / SVN
GIT / SVNGIT / SVN
GIT / SVN
 
Ultimate Git Workflow - Seoul 2015
Ultimate Git Workflow - Seoul 2015Ultimate Git Workflow - Seoul 2015
Ultimate Git Workflow - Seoul 2015
 
Git and Git Workflow Models as Catalysts of Software Development
Git and Git Workflow Models as Catalysts of Software DevelopmentGit and Git Workflow Models as Catalysts of Software Development
Git and Git Workflow Models as Catalysts of Software Development
 
ClearCase Basics
ClearCase BasicsClearCase Basics
ClearCase Basics
 
Git 101: Git and GitHub for Beginners
Git 101: Git and GitHub for Beginners Git 101: Git and GitHub for Beginners
Git 101: Git and GitHub for Beginners
 
Einführung in Git - GameCamp Munich 2011
Einführung in Git - GameCamp Munich 2011Einführung in Git - GameCamp Munich 2011
Einführung in Git - GameCamp Munich 2011
 
Subversion -> SVK -> Git
Subversion -> SVK -> GitSubversion -> SVK -> Git
Subversion -> SVK -> Git
 
Git Grundlagen
Git GrundlagenGit Grundlagen
Git Grundlagen
 

Ähnlich wie Git & Gerrit: Verteilte Softwareentwicklung und -reviews in der TYPO3-Community

Enterprise Git Adoption Webinar - German
Enterprise Git Adoption Webinar - GermanEnterprise Git Adoption Webinar - German
Enterprise Git Adoption Webinar - German
CollabNet
 
DWX 2017 - GIT im Leben eines VS Entwicklers
DWX 2017 - GIT im Leben eines VS EntwicklersDWX 2017 - GIT im Leben eines VS Entwicklers
DWX 2017 - GIT im Leben eines VS Entwicklers
Marc Müller
 
GitLab als alternative Entwicklungsplattform zu Github.com
GitLab als alternative Entwicklungsplattform zu Github.comGitLab als alternative Entwicklungsplattform zu Github.com
GitLab als alternative Entwicklungsplattform zu Github.com
B1 Systems GmbH
 
TYPO3 Monitoring mit t3monitoring
TYPO3 Monitoring mit t3monitoringTYPO3 Monitoring mit t3monitoring
TYPO3 Monitoring mit t3monitoring
Peter Kraume
 
Versionierung mit GIT
Versionierung mit GITVersionierung mit GIT
Versionierung mit GIT
gedoplan
 
TYPO3 GitLab CI
TYPO3 GitLab CITYPO3 GitLab CI
TYPO3 GitLab CI
Sebastian Michaelsen
 
Git und WordPress-Themes | WPCamp Berlin 2013
Git und WordPress-Themes | WPCamp Berlin 2013Git und WordPress-Themes | WPCamp Berlin 2013
Git und WordPress-Themes | WPCamp Berlin 2013
KirstenSchelper
 
Elemente Websolutions - FLOW3 Überblick
Elemente Websolutions - FLOW3 ÜberblickElemente Websolutions - FLOW3 Überblick
Elemente Websolutions - FLOW3 Überblick
elemente websolutions
 
Eigene Änderungen in den TYPO3-Kern bringen
Eigene Änderungen in den TYPO3-Kern bringenEigene Änderungen in den TYPO3-Kern bringen
Eigene Änderungen in den TYPO3-Kern bringen
Steffen Gebert
 
Einführung in Git
Einführung in GitEinführung in Git
Einführung in Git
andreaswo
 
Frontend Formulare in TYPO3 8 LTS
Frontend Formulare in TYPO3 8 LTSFrontend Formulare in TYPO3 8 LTS
Frontend Formulare in TYPO3 8 LTS
Peter Kraume
 
Ü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
 
Workshop Extension-Entwicklung mit Extbase und Fluid
Workshop Extension-Entwicklung mit Extbase und FluidWorkshop Extension-Entwicklung mit Extbase und Fluid
Workshop Extension-Entwicklung mit Extbase und Fluid
Sebastian Kurfürst
 
TYPO3 Website Monitoring mit Caretaker
TYPO3 Website Monitoring mit CaretakerTYPO3 Website Monitoring mit Caretaker
TYPO3 Website Monitoring mit Caretaker
Peter Kraume
 
Günzel/Griesbaum -OpenShift und GitLab: Continuous delivery in der cloud
Günzel/Griesbaum -OpenShift und GitLab: Continuous delivery in der cloudGünzel/Griesbaum -OpenShift und GitLab: Continuous delivery in der cloud
Günzel/Griesbaum -OpenShift und GitLab: Continuous delivery in der cloud
Andreas Günzel
 
TYPO3 Code Review Process
TYPO3 Code Review ProcessTYPO3 Code Review Process
TYPO3 Code Review Process
Bernhard Kraft
 
Version management mit Git und Github
Version management mit Git und Github Version management mit Git und Github
Version management mit Git und Github
fg.informatik Universität Basel
 
Gitlab, Gitlab CI, Docker, Maven
Gitlab, Gitlab CI, Docker, MavenGitlab, Gitlab CI, Docker, Maven
Gitlab, Gitlab CI, Docker, Maven
Niklas Grebe
 
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
 
TYPO3 Dokumentation mit ReStructuredText
TYPO3 Dokumentation mit ReStructuredTextTYPO3 Dokumentation mit ReStructuredText
TYPO3 Dokumentation mit ReStructuredText
Peter Linzenkirchner
 

Ähnlich wie Git & Gerrit: Verteilte Softwareentwicklung und -reviews in der TYPO3-Community (20)

Enterprise Git Adoption Webinar - German
Enterprise Git Adoption Webinar - GermanEnterprise Git Adoption Webinar - German
Enterprise Git Adoption Webinar - German
 
DWX 2017 - GIT im Leben eines VS Entwicklers
DWX 2017 - GIT im Leben eines VS EntwicklersDWX 2017 - GIT im Leben eines VS Entwicklers
DWX 2017 - GIT im Leben eines VS Entwicklers
 
GitLab als alternative Entwicklungsplattform zu Github.com
GitLab als alternative Entwicklungsplattform zu Github.comGitLab als alternative Entwicklungsplattform zu Github.com
GitLab als alternative Entwicklungsplattform zu Github.com
 
TYPO3 Monitoring mit t3monitoring
TYPO3 Monitoring mit t3monitoringTYPO3 Monitoring mit t3monitoring
TYPO3 Monitoring mit t3monitoring
 
Versionierung mit GIT
Versionierung mit GITVersionierung mit GIT
Versionierung mit GIT
 
TYPO3 GitLab CI
TYPO3 GitLab CITYPO3 GitLab CI
TYPO3 GitLab CI
 
Git und WordPress-Themes | WPCamp Berlin 2013
Git und WordPress-Themes | WPCamp Berlin 2013Git und WordPress-Themes | WPCamp Berlin 2013
Git und WordPress-Themes | WPCamp Berlin 2013
 
Elemente Websolutions - FLOW3 Überblick
Elemente Websolutions - FLOW3 ÜberblickElemente Websolutions - FLOW3 Überblick
Elemente Websolutions - FLOW3 Überblick
 
Eigene Änderungen in den TYPO3-Kern bringen
Eigene Änderungen in den TYPO3-Kern bringenEigene Änderungen in den TYPO3-Kern bringen
Eigene Änderungen in den TYPO3-Kern bringen
 
Einführung in Git
Einführung in GitEinführung in Git
Einführung in Git
 
Frontend Formulare in TYPO3 8 LTS
Frontend Formulare in TYPO3 8 LTSFrontend Formulare in TYPO3 8 LTS
Frontend Formulare in TYPO3 8 LTS
 
Ü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]
 
Workshop Extension-Entwicklung mit Extbase und Fluid
Workshop Extension-Entwicklung mit Extbase und FluidWorkshop Extension-Entwicklung mit Extbase und Fluid
Workshop Extension-Entwicklung mit Extbase und Fluid
 
TYPO3 Website Monitoring mit Caretaker
TYPO3 Website Monitoring mit CaretakerTYPO3 Website Monitoring mit Caretaker
TYPO3 Website Monitoring mit Caretaker
 
Günzel/Griesbaum -OpenShift und GitLab: Continuous delivery in der cloud
Günzel/Griesbaum -OpenShift und GitLab: Continuous delivery in der cloudGünzel/Griesbaum -OpenShift und GitLab: Continuous delivery in der cloud
Günzel/Griesbaum -OpenShift und GitLab: Continuous delivery in der cloud
 
TYPO3 Code Review Process
TYPO3 Code Review ProcessTYPO3 Code Review Process
TYPO3 Code Review Process
 
Version management mit Git und Github
Version management mit Git und Github Version management mit Git und Github
Version management mit Git und Github
 
Gitlab, Gitlab CI, Docker, Maven
Gitlab, Gitlab CI, Docker, MavenGitlab, Gitlab CI, Docker, Maven
Gitlab, Gitlab CI, Docker, Maven
 
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
 
TYPO3 Dokumentation mit ReStructuredText
TYPO3 Dokumentation mit ReStructuredTextTYPO3 Dokumentation mit ReStructuredText
TYPO3 Dokumentation mit ReStructuredText
 

Mehr von Steffen Gebert

Building an IoT SuperNetwork on top of the AWS Global Infrastructure
Building an IoT SuperNetwork on top of the AWS Global InfrastructureBuilding an IoT SuperNetwork on top of the AWS Global Infrastructure
Building an IoT SuperNetwork on top of the AWS Global Infrastructure
Steffen Gebert
 
Wenn selbst ‘erlaube allen Verkehr von 0.0.0.0/0’ nicht hilft - Verbindungspr...
Wenn selbst ‘erlaube allen Verkehr von 0.0.0.0/0’ nicht hilft - Verbindungspr...Wenn selbst ‘erlaube allen Verkehr von 0.0.0.0/0’ nicht hilft - Verbindungspr...
Wenn selbst ‘erlaube allen Verkehr von 0.0.0.0/0’ nicht hilft - Verbindungspr...
Steffen Gebert
 
Feature Management Platforms
Feature Management PlatformsFeature Management Platforms
Feature Management Platforms
Steffen Gebert
 
Serverless Networking - How We Provide Cloud-Native Connectivity for IoT Devices
Serverless Networking - How We Provide Cloud-Native Connectivity for IoT DevicesServerless Networking - How We Provide Cloud-Native Connectivity for IoT Devices
Serverless Networking - How We Provide Cloud-Native Connectivity for IoT Devices
Steffen Gebert
 
How our Cloudy Mindsets Approached Physical Routers
How our Cloudy Mindsets Approached Physical RoutersHow our Cloudy Mindsets Approached Physical Routers
How our Cloudy Mindsets Approached Physical Routers
Steffen Gebert
 
Jenkins vs. AWS CodePipeline (AWS User Group Berlin)
Jenkins vs. AWS CodePipeline (AWS User Group Berlin)Jenkins vs. AWS CodePipeline (AWS User Group Berlin)
Jenkins vs. AWS CodePipeline (AWS User Group Berlin)
Steffen Gebert
 
Jenkins vs. AWS CodePipeline
Jenkins vs. AWS CodePipelineJenkins vs. AWS CodePipeline
Jenkins vs. AWS CodePipeline
Steffen Gebert
 
Monitoring Akka with Kamon 1.0
Monitoring Akka with Kamon 1.0Monitoring Akka with Kamon 1.0
Monitoring Akka with Kamon 1.0
Steffen Gebert
 
(Declarative) Jenkins Pipelines
(Declarative) Jenkins Pipelines(Declarative) Jenkins Pipelines
(Declarative) Jenkins Pipelines
Steffen Gebert
 
An Open-Source Chef Cookbook CI/CD Implementation Using Jenkins Pipelines
An Open-Source Chef Cookbook CI/CD Implementation Using Jenkins PipelinesAn Open-Source Chef Cookbook CI/CD Implementation Using Jenkins Pipelines
An Open-Source Chef Cookbook CI/CD Implementation Using Jenkins Pipelines
Steffen Gebert
 
Continuous Delivery
Continuous DeliveryContinuous Delivery
Continuous Delivery
Steffen Gebert
 
Jenkins Pipelines
Jenkins PipelinesJenkins Pipelines
Jenkins Pipelines
Steffen Gebert
 
Let's go HTTPS-only! - More Than Buying a Certificate
Let's go HTTPS-only! - More Than Buying a CertificateLet's go HTTPS-only! - More Than Buying a Certificate
Let's go HTTPS-only! - More Than Buying a Certificate
Steffen Gebert
 
Cleaning Up the Dirt of the Nineties - How New Protocols are Modernizing the Web
Cleaning Up the Dirt of the Nineties - How New Protocols are Modernizing the WebCleaning Up the Dirt of the Nineties - How New Protocols are Modernizing the Web
Cleaning Up the Dirt of the Nineties - How New Protocols are Modernizing the Web
Steffen Gebert
 
Investigating the Impact of Network Topology on the Processing Times of SDN C...
Investigating the Impact of Network Topology on the Processing Times of SDN C...Investigating the Impact of Network Topology on the Processing Times of SDN C...
Investigating the Impact of Network Topology on the Processing Times of SDN C...
Steffen Gebert
 
SDN interfaces and performance analysis of SDN components
SDN interfaces and performance analysis of SDN componentsSDN interfaces and performance analysis of SDN components
SDN interfaces and performance analysis of SDN components
Steffen Gebert
 
Git Power-Workshop
Git Power-WorkshopGit Power-Workshop
Git Power-Workshop
Steffen Gebert
 
The Development Infrastructure of the TYPO3 Project
The Development Infrastructure of the TYPO3 ProjectThe Development Infrastructure of the TYPO3 Project
The Development Infrastructure of the TYPO3 Project
Steffen Gebert
 
Der Weg zu TYPO3 CMS 6.0 und Einblicke in die TYPO3-Entwicklung
Der Weg zu TYPO3 CMS 6.0 und Einblicke in die TYPO3-EntwicklungDer Weg zu TYPO3 CMS 6.0 und Einblicke in die TYPO3-Entwicklung
Der Weg zu TYPO3 CMS 6.0 und Einblicke in die TYPO3-Entwicklung
Steffen Gebert
 
Official typo3.org infrastructure &
the TYPO3 Server Admin Team
Official typo3.org infrastructure &
the TYPO3 Server Admin TeamOfficial typo3.org infrastructure &
the TYPO3 Server Admin Team
Official typo3.org infrastructure &
the TYPO3 Server Admin Team
Steffen Gebert
 

Mehr von Steffen Gebert (20)

Building an IoT SuperNetwork on top of the AWS Global Infrastructure
Building an IoT SuperNetwork on top of the AWS Global InfrastructureBuilding an IoT SuperNetwork on top of the AWS Global Infrastructure
Building an IoT SuperNetwork on top of the AWS Global Infrastructure
 
Wenn selbst ‘erlaube allen Verkehr von 0.0.0.0/0’ nicht hilft - Verbindungspr...
Wenn selbst ‘erlaube allen Verkehr von 0.0.0.0/0’ nicht hilft - Verbindungspr...Wenn selbst ‘erlaube allen Verkehr von 0.0.0.0/0’ nicht hilft - Verbindungspr...
Wenn selbst ‘erlaube allen Verkehr von 0.0.0.0/0’ nicht hilft - Verbindungspr...
 
Feature Management Platforms
Feature Management PlatformsFeature Management Platforms
Feature Management Platforms
 
Serverless Networking - How We Provide Cloud-Native Connectivity for IoT Devices
Serverless Networking - How We Provide Cloud-Native Connectivity for IoT DevicesServerless Networking - How We Provide Cloud-Native Connectivity for IoT Devices
Serverless Networking - How We Provide Cloud-Native Connectivity for IoT Devices
 
How our Cloudy Mindsets Approached Physical Routers
How our Cloudy Mindsets Approached Physical RoutersHow our Cloudy Mindsets Approached Physical Routers
How our Cloudy Mindsets Approached Physical Routers
 
Jenkins vs. AWS CodePipeline (AWS User Group Berlin)
Jenkins vs. AWS CodePipeline (AWS User Group Berlin)Jenkins vs. AWS CodePipeline (AWS User Group Berlin)
Jenkins vs. AWS CodePipeline (AWS User Group Berlin)
 
Jenkins vs. AWS CodePipeline
Jenkins vs. AWS CodePipelineJenkins vs. AWS CodePipeline
Jenkins vs. AWS CodePipeline
 
Monitoring Akka with Kamon 1.0
Monitoring Akka with Kamon 1.0Monitoring Akka with Kamon 1.0
Monitoring Akka with Kamon 1.0
 
(Declarative) Jenkins Pipelines
(Declarative) Jenkins Pipelines(Declarative) Jenkins Pipelines
(Declarative) Jenkins Pipelines
 
An Open-Source Chef Cookbook CI/CD Implementation Using Jenkins Pipelines
An Open-Source Chef Cookbook CI/CD Implementation Using Jenkins PipelinesAn Open-Source Chef Cookbook CI/CD Implementation Using Jenkins Pipelines
An Open-Source Chef Cookbook CI/CD Implementation Using Jenkins Pipelines
 
Continuous Delivery
Continuous DeliveryContinuous Delivery
Continuous Delivery
 
Jenkins Pipelines
Jenkins PipelinesJenkins Pipelines
Jenkins Pipelines
 
Let's go HTTPS-only! - More Than Buying a Certificate
Let's go HTTPS-only! - More Than Buying a CertificateLet's go HTTPS-only! - More Than Buying a Certificate
Let's go HTTPS-only! - More Than Buying a Certificate
 
Cleaning Up the Dirt of the Nineties - How New Protocols are Modernizing the Web
Cleaning Up the Dirt of the Nineties - How New Protocols are Modernizing the WebCleaning Up the Dirt of the Nineties - How New Protocols are Modernizing the Web
Cleaning Up the Dirt of the Nineties - How New Protocols are Modernizing the Web
 
Investigating the Impact of Network Topology on the Processing Times of SDN C...
Investigating the Impact of Network Topology on the Processing Times of SDN C...Investigating the Impact of Network Topology on the Processing Times of SDN C...
Investigating the Impact of Network Topology on the Processing Times of SDN C...
 
SDN interfaces and performance analysis of SDN components
SDN interfaces and performance analysis of SDN componentsSDN interfaces and performance analysis of SDN components
SDN interfaces and performance analysis of SDN components
 
Git Power-Workshop
Git Power-WorkshopGit Power-Workshop
Git Power-Workshop
 
The Development Infrastructure of the TYPO3 Project
The Development Infrastructure of the TYPO3 ProjectThe Development Infrastructure of the TYPO3 Project
The Development Infrastructure of the TYPO3 Project
 
Der Weg zu TYPO3 CMS 6.0 und Einblicke in die TYPO3-Entwicklung
Der Weg zu TYPO3 CMS 6.0 und Einblicke in die TYPO3-EntwicklungDer Weg zu TYPO3 CMS 6.0 und Einblicke in die TYPO3-Entwicklung
Der Weg zu TYPO3 CMS 6.0 und Einblicke in die TYPO3-Entwicklung
 
Official typo3.org infrastructure &
the TYPO3 Server Admin Team
Official typo3.org infrastructure &
the TYPO3 Server Admin TeamOfficial typo3.org infrastructure &
the TYPO3 Server Admin Team
Official typo3.org infrastructure &
the TYPO3 Server Admin Team
 

Git & Gerrit: Verteilte Softwareentwicklung und -reviews in der TYPO3-Community

  • 1. TYPO3-Camp Stuttgart - 20.-22. Mai 2011 Inspiring people to TYPO3-Entwicklung mit Git und Gerrit share
  • 2. Verteilte Softwareentwicklung und -reviews in der TYPO3-Community Steffen Gebert <steffen.gebert@typo3.org> Twitter: @StGebert TYPO3-Camp Stuttgart - 20./22. Mai 2011 Inspiring people to TYPO3-Entwicklung mit Git und Gerrit share
  • 3. Einführung Vorstellung Steffen Gebert TYPO3 Core Team Member Diplom-Informatiker Doktorand / Wissenschaftl. Mitarbeiter an der Uni Würzburg Inspiring people to TYPO3-Entwicklung mit Git und Gerrit share
  • 4. Einführung Überblick Software-Reviews Git & Gerrit Workflows & Konventionen Weitere Informationen Fragen Inspiring people to TYPO3-Entwicklung mit Git und Gerrit share
  • 5. Software-Reviews Foto: mario.rimann http://www.flickr.com/photos/mrimann/3534514430/ Inspiring people to TYPO3-Entwicklung mit Git und Gerrit share
  • 6. Einführung Software-Reviews Qualitätssicherung Vier (oder sechs) Augen sehen mehr als zwei Fehler werden immer gemacht - man muss sie nur finden! Aufnahme in offiziellen Quellcode erst nach erfolgtem Review Verschiedene Arten des Reviews, u.a. Funktionalität Code Inspiring people to TYPO3-Entwicklung mit Git und Gerrit share
  • 7. Software-Reviews Funktionales Review Eine Änderung... behebt den Fehler / ermöglicht ein neues Feature stört keine andere Funktionalität Inspiring people to TYPO3-Entwicklung mit Git und Gerrit share
  • 8. Software-Reviews Code-Review Eine Änderung am Quellcode... ist korrekt (macht das, was sie tun soll und nichts anderes) ist sinnvoll programmiert (Robustheit, Performance, etc.) entspricht gewünschten Programmierstandards (z.B. TYPO3 Coding Guide Lines) Testmethoden Automatische Analyse (v.a. CGL) Durchlesen Inspiring people to TYPO3-Entwicklung mit Git und Gerrit share
  • 9. Software-Reviews Review per Mailingliste (damals...) “Requests for Comments” (RFCs) per core-team-Mailingliste Formalitäten / Konventionen
  • 11. Software-Reviews Mailingliste: Ordnung halten man kämpfte sich so durch... Inspiring people to TYPO3-Entwicklung mit Git und Gerrit share
  • 12. Git & Gerrit Migration zu Git & Gerrit Präsentation auf Core-Team-Meeting im Juli 2010 Einigkeit über Einführung Testkaninchen FLOW3 ab Aug. 2010 Migration für v4 während Code-Sprint am 1. März 2011 Erwartete Vorteile Mehr Übersicht für Reviewer Einfachere Entwicklung/Integration großer Features Inspiring people to TYPO3-Entwicklung mit Git und Gerrit share
  • 13. Foto: tnimalan Git & Gerrit im Einsatz http://www.sxc.hu/photo/1275444 Inspiring people to TYPO3-Entwicklung mit Git und Gerrit share
  • 14. Git & Gerrit Git Lokale Kopie des Verteiltes Versionskontrollsystem gesamten Repositories Entwickelt für die Linux-Kernelentwicklung von Linus Thorvalds Sehr mächtig Von Nerds für Nerds :-) Komplexer als Subversion Basiswissen wird im Folgenden vorausgesetzt Danke an Tobias Günther für den Crashkurs Inspiring people to TYPO3-Entwicklung mit Git und Gerrit share
  • 15. lokale Aktion Veröffentlichung Inspiring people to TYPO3-Entwicklung mit Git und Gerrit share
  • 16. Git & Gerrit Git: Wiederholung “trunk” heißt jetzt “master” Commits werden über SHA-1 identifiziert Ein Commit ist lokal - jeder darf committen Committs lassen sich nachträglich ändern Branching ist alltäglich Foto: texas_mustang http://www.flickr.com/photos/astros/58932360/ Inspiring people to TYPO3-Entwicklung mit Git und Gerrit share
  • 17. Git & Gerrit Repository klonen git clone --recursive git://git.typo3.org/TYPO3v4/Core.git Meta-Informationen landen im Verzeichnis .git/ Ausgecheckter Branch: master Gesamte History seit TYPO3 3.6 enthalten Inspiring people to TYPO3-Entwicklung mit Git und Gerrit share
  • 18. Git & Gerrit Gerrit Web-basiertes Code-Review Tool Für Android-Entwicklung von Google entwickelt Baut auf Git als VCS auf Wacht über das offizielle Git-Repository Hauptgrund für die Migration des TYPO3-Codes nach Git Inspiring people to TYPO3-Entwicklung mit Git und Gerrit share
  • 19. GIT “standalone” GIT & Gerrit Inspiring people to TYPO3-Entwicklung mit Git und Gerrit share
  • 20. Git & Gerrit Gerrit Momentan genutzt für TYPO3v4: Core, Workspaces, Extbase, Fluid Extensions: community, extension_builder (ehem. extbase_kickstarter) FLOW3 TYPO3v5 http://review.typo3.org Inspiring people to TYPO3-Entwicklung mit Git und Gerrit share
  • 21. Git & Gerrit Gerrit Übersicht ´ o o
  • 22. Git & Gerrit Gerrit Change-Id Jeder Change-Request hat eindeutige Change-Id Inspiring people to TYPO3-Entwicklung mit Git und Gerrit share
  • 23. Patches reviewen Foto: stylesr1 http://www.sxc.hu/photo/605324 Inspiring people to TYPO3-Entwicklung mit Git und Gerrit share
  • 25. Git & Gerrit Änderung reviewen Commit Message ➪ Konventionen
  • 26. Git & Gerrit Änderung reviewen Reviews
  • 27. Git & Gerrit Änderung reviewen Verschiedene Patch-Versionen
  • 28. Git & Gerrit Code Review Diff aufrufen
  • 29. Git & Gerrit Diff-Ansicht Inspiring people to TYPO3-Entwicklung mit Git und Gerrit share
  • 30. Git & Gerrit Diff-Ansicht Inline-Kommentare mit Doppelklick Inspiring people to TYPO3-Entwicklung mit Git und Gerrit share
  • 31. Git & Gerrit Funktionaler Test checkout wählen kopieren
  • 32. Git & Gerrit Funktionaler Test Befehlszeile ausführen Exakter Stand wird ausgecheckt, incl. Änderung Testen! Inspiring people to TYPO3-Entwicklung mit Git und Gerrit share
  • 34. Git & Gerrit Voting abgeben Funktionaler Test -1/0/+1 Code Review -1/0/+1 Anmerkungen - besonders bei negativem Review!
  • 35. Git & Gerrit Voting abgeben Members only.. Anmerkungen - besonders bei negativem Review!
  • 36. Foto: csremedy Eigene Patches senden http://www.sxc.hu/photo/1267108 Inspiring people to TYPO3-Entwicklung mit Git und Gerrit share
  • 37. Git & Gerrit Git konfigurieren git config --global user.name "Your Name" git config --global user.email "foo@example.com" muss mit Adresse in Gerrit übereinstimmen Inspiring people to TYPO3-Entwicklung mit Git und Gerrit share
  • 38. Git & Gerrit Git konfigurieren git config --global user.name "Your Name" git config --global user.email "foo@example.com" git config --global branch.autosetuprebase remote git config --global url."ssh://<username>@review.typo3.org:29418" .pushInsteadOf git://git.typo3.org Inspiring people to TYPO3-Entwicklung mit Git und Gerrit share
  • 39. Git & Gerrit Git konfigurieren git config --global user.name "Your Name" git config --global user.email "foo@example.com" git config --global branch.autosetuprebase remote git config --global url."ssh://<username>@review.typo3.org:29418" .pushInsteadOf git://git.typo3.org Inspiring people to TYPO3-Entwicklung mit Git und Gerrit share
  • 40. Git & Gerrit Git konfigurieren git config --global user.name "Your Name" git config --global user.email "foo@example.com" Push URL git config --global branch.autosetuprebase remote git config --global url."ssh://<username>@review.typo3.org:29418" .pushInsteadOf git://git.typo3.org Fetch/Pull URL Inspiring people to TYPO3-Entwicklung mit Git und Gerrit share
  • 41. Git & Gerrit Gerrit: SSH-Key festlegen
  • 42. Git & Gerrit Gerrit Change-Id Jeder Change-Request hat eindeutige Change-Id Inspiring people to TYPO3-Entwicklung mit Git und Gerrit share
  • 43. Git & Gerrit Gerrit Change-Id Automatische Generierung über Git Commit Hook submodule ≅ cd typo3_src-git scp -p -P 29418 svn:externals <username>@review.typo3.org:hooks/commit-msg .git/hooks/ git submodule update --init git submodule foreach 'scp -p -P 29418 <username>@review.typo3.org:hooks/commit-msg .git/hooks/' Inspiring people to TYPO3-Entwicklung mit Git und Gerrit share
  • 44. Git & Gerrit Eigene Änderung senden
  • 45. Git & Gerrit Eigene Änderung senden Aktuellen Stand bekommen git checkout <release-branch> z.B. master git pull TYPO3_4-5 Änderung am Code durchführen TYPO3_4-4 Änderung reviewen git diff Committen git commit -a Inspiring people to TYPO3-Entwicklung mit Git und Gerrit share
  • 46. Git & Gerrit Commit Message Format CM verbleibt auf ewig in der History Spezielle Konventionen für Commit Message [BUGFIX] Recursion error when including TypoScript files Text When editing TypoScript in the template module and using the "Include TypoScript file content" option with more than 9 files, then the 10th and all later files gets screwed up. Resolves: #25374 Releases: 4.6, 4.5 Inspiring people to TYPO3-Entwicklung mit Git und Gerrit share
  • 47. Git & Gerrit Commit Message Hook git log -1 zeigt letzte Commit Message an Change-Id-Zeile wurde automatisch hinzugefügt (ansonsten weigert Gerrit später die Annahme) [BUGFIX] Recursion error when including TypoScript files When editing TypoScript ... Change-Id: 69fb8866b94c75b3b73395cfa4bd0a900e6ab53c Resolves: #25374 Releases: 4.6, 4.5 Inspiring people to TYPO3-Entwicklung mit Git und Gerrit share
  • 48. Git & Gerrit Änderung pushen git push origin HEAD:refs/for/<release-branch> gewünschter Remote alternativ z.B. github Inspiring people to TYPO3-Entwicklung mit Git und Gerrit share
  • 49. Git & Gerrit Änderung pushen git push origin HEAD:refs/for/<release-branch> z.B. master TYPO3_4-5 Stand des eigenen Pseudo-Branch TYPO3_4-4 Working-Tree in Gerrit Gerrit antwortet mit Erfolgsmeldung “New Changes” und Review-URL Inspiring people to TYPO3-Entwicklung mit Git und Gerrit share
  • 50. Workflows & Konventionen Inspiring people to TYPO3-Entwicklung mit Git und Gerrit share
  • 51. Workflows & Konventionen Review-Workflow Issue in Forge eröffnen Commit machen, Pushen Auf Reviews warten Nachbessern mit neuer Patch-Version oder freuen :-) Ggf. weitere Branches pushen Inspiring people to TYPO3-Entwicklung mit Git und Gerrit share
  • 52. Workflows & Konventionen Grundsätzliches Change Request bezieht sich jeweils auf einen Branch Nur ein Eintrag für alle Branches in Forge erforderlich Nach erfolgreichem Review automatisch im nächsten Release Inspiring people to TYPO3-Entwicklung mit Git und Gerrit share
  • 53. Workflows & Konventionen Aktive Branches master (wird später TYPO3_4-6 abgespalten) TYPO3_4-5 (current stable, LTS) TYPO3_4-4 (oldstable) TYPO3_4-3 (oldoldstable) Inspiring people to TYPO3-Entwicklung mit Git und Gerrit share
  • 54. Workflows & Konventionen In welchen Branch..? Features, Änderungen des Verhaltens master (keine Features in veröffentlichten Versionen) Bugfixes master (4.6) master nicht current stable (4.5) vergessen! LTS (4.5) ältere Branches nach Belieben (4.4, 4.3) Inspiring people to TYPO3-Entwicklung mit Git und Gerrit share
  • 55. Workflows & Konventionen Erforderliche Reviews Change Request wird gemerged bei jeweils mindestens Verified Code Review Team-Mitglied ✓ (+2) ✓ (+2) Beliebiger +1 +1 Reviewer Weitere Reviews sind willkommen! Übernahme (“Submit”) durch Team-Mitglied in Gerrit Inspiring people to TYPO3-Entwicklung mit Git und Gerrit share
  • 56. Workflows & Konventionen Mr. Hudson & Mr. Jenkins Jenkins Continuous Integration Server (vormals Hudson) Automatisiertes Review Momentane Tests Coding Guide Lines PHP lint TODO Unit Tests http://ci.typo3.org Inspiring people to TYPO3-Entwicklung mit Git und Gerrit share
  • 57. Weitere Informationen Foto: Egilshay http://www.sxc.hu/photo/1095604 Inspiring people to TYPO3-Entwicklung mit Git und Gerrit share
  • 58. Weitere Informationen Git-Probleme Screenshot Google Pro Git Buch http://progit.org (kostenlos) Inspiring people to TYPO3-Entwicklung mit Git und Gerrit share
  • 59. Weitere Informationen Wiki: “Git” landing page Git Grundlagen
  • 60. Weitere Informationen Wiki: “Git” landing page Quellcode über Git beziehen
  • 61. Weitere Informationen Wiki: “Git” landing page Contributing (interessant ;-))
  • 62. Weitere Informationen Wiki: “Git” landing page Workflow nochmals erklärt
  • 63. Weitere Informationen Wiki: “Git” landing page Klappt was nicht?
  • 64. Weitere Informationen Wiki: “Git” landing page nice to know...
  • 65. Weitere Informationen Wiki: “Git” landing page Begrifflichkeiten erklärt
  • 69. Weitere Informationen Probleme? Fragen! Mailinglisten / Newsgroups typo3.core typo3.dev lists.typo3.org Inspiring people to TYPO3-Entwicklung mit Git und Gerrit share
  • 70. Weitere Informationen Nicht angesprochen... Neue Patchversion erstellen modifiziert vorherigen git commit --amend Commit Inspiring people to TYPO3-Entwicklung mit Git und Gerrit share
  • 71. ????? ?? ? ?? ?? ? Inspiring people to TYPO3-Entwicklung mit Git und Gerrit share