Eclipse, Git und Gerrit
Upcoming SlideShare
Loading in...5
×

Like this? Share it with your network

Share

Eclipse, Git und Gerrit

  • 6,766 views
Uploaded on

Slides for the gearconf (mainly in German)

Slides for the gearconf (mainly in German)

More in: Technology , Sports
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
6,766
On Slideshare
6,766
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
29
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1.  EffizienteEntwicklungsprozessemit Eclipse, Git und Gerrit
    http://eclipse.org/egit
    +
    =
    Stefan Lay (SAP)
    stefan.lay@sap.com
    Twitter: @stefanlay
  • 2. Agenda
    Git – einverteiltesVersionierungssystem
    Gitbei Eclipse und innerhalbeinesUnternehmens
    Code Review mitGerrit
    Demo: LebenszykluseinerÄnderung
    Q & A
      
    Effiziente Entwicklungsprozesse mit Eclipse, Git und Gerrit | © 2010 by Stefan Lay, SAP AG
  • 3. Die Hauptdarsteller
    GitisteinverteiltesVersionierungssystem
    EGitisteinEclipse Team Provider fürGit
    http://www.eclipse.org/egit/
    JGitisteineleichtgewichtige Java-BibliothekfürGit
    http://www.eclipse.org/jgit/
    Gerritistein Code-Review-System, basierend auf JGit
    http://code.google.com/p/gerrit/
    Effiziente Entwicklungsprozesse mit Eclipse, Git und Gerrit | © 2010 by Stefan Lay, SAP AG
  • 4. Geschichte von Git, JGit und EGit
    2005    LinusTorvaldsinitiiertGit
    2006    Shawn Pearce initiiert JGit
    2009    Eclipse entscheidetsichfürGit JGit/EGit ziehen um nach eclipse.org SAP beteiligtsich 
    3/2010 JGit/EGit Release 0.7 (erstes Release bei Eclipse)             
                Diff/Merge Algorithms, Automatic IP Logs
     
    6/2010Release 0.8 (Helios)
                GitRepositories View, Tagging
    9/2010Release 0.9 (Helios SR1)
    Merge, Synchronize View, .gitignore
    Effiziente Entwicklungsprozesse mit Eclipse, Git und Gerrit | © 2010 by Stefan Lay, SAP AG
  • 5. 5
    Git vs. CVS/SVN
    Understanding and Using Git at Eclipse | © 2010 by C. Aniszczyk, S. Pearce, R. Rosenberg and M. Sohn
  • 17. Eclipse - Rollen
    Committer
    Gewählt in einemformalenProzess
    KanneigeneÄnderungenohne Review committen
    Contributor
    KleineÄnderungen
    von Committerngereviewt
    GrößereÄnderungen
    zusätzlichformales IP review in speziellemgeschütztenBugzilla
    Review Tool
    Patches werden an Bugzillaangehängt
    Kommentare in Bugzilla
    Effiziente Entwicklungsprozesse mit Eclipse, Git und Gerrit | © 2010 by Stefan Lay, SAP AG
  • 18. Code Review in Bugzilla
    Code Review | © 2010 by M. Sohn
  • 19. Git @ Eclipse
    EGit/Jgit-Entwicklung: http://egit.eclipse.org
    http://git.eclipse.org/hostetlive Eclipse Git Repositories
    Virgo, Mylyn Review, ScalaModules, SWTBot …
    http://dev.eclipse.org/git/index.html git mirrors für CVS
    Read-only Kopien, up-to-date
    Clonenmitgit:// oder http://
    “Git is the future SCM of Eclipse (Chris Aniszczyk)”
    Effiziente Entwicklungsprozesse mit Eclipse, Git und Gerrit | © 2010 by Stefan Lay, SAP AG
  • 20. Git innerhalb eines Unternehmens?
    Git wurde für die Entwicklung des Linux Kernels konzipiert
    Verteilte Entwicklung bringt Vorteile für Contributors in Open-Source-Projekten
    Comitter / contributor model auch innerhalb eines Unternehmens -> für re-use-Komponenten
    Produktivität durch lokale Feature branches
    Gitand Gerrit ermöglichen einen (Peer) Code reviewworkflow
  • 21. Peer Code Review
    Guido van Rossum, Google [1]
    When one developer writes code, another developer is asked to review that code
    A careful line-by-line critique
    Happens in a non-threatening context
    Goal is cooperation, not fault-finding
    Often an integral part of coding process
    Debugging someone else's broken code
    – Involuntary code review: Not so good; emotions may flare
    [1] http://code.google.com/p/rietveld/downloads/detail?name=Mondrian2006.pdf
    Code Review | © 2010 by M. Sohn
  • 22. Code Review – Benefits
    Guido van Rossum, Google [1]
    Four eyes catch more bugs
    • Catch bugs early to save hours of debugging
    Enforce coding standards
    • Keep overall readability & code quality high
    Mentoring of new developers
    • Learn from mistakes without breaking stuff
    Establish trust relationships
    • Prepare for more delegation
    Good alternative to pair programming
    • asynchronous and across locations
    [1] http://code.google.com/p/rietveld/downloads/detail?name=Mondrian2006.pdf
    Code Review | © 2010 by M. Sohn
  • 23. Gerrit Code Review
    Gerritista ein auf JGit basierendes Code-Review-System
    • http://code.google.com/p/gerrit/
    • 24. DientauchalsgitServer
    • 25. FügtZugriffskontrolleund Workflow hinzu
    • 26. Benutzt von
    • 27. Androidhttps://review.source.android.com/
    • 28. JGit, EGithttp://egit.eclipse.org/r/
    • 29. Google, SAP, …
    • 30. Eclipse hat großesInteresse (Bug 283749)…
    Code Review | © 2010 by M. Sohn
  • 31. Ein Branch per Feature
    Master branch enthältnurakzeptierteÄnderungen
    Master verbessertsichmitjedem Commit
    JederFeature branch basiert auf demMaster branch
    StabilerStartpunkt
    Neueste Commits in master könnenleicht in die Änderungintegriertwerden
    Git rebase isthiersehrhilfreich
    EineÄnderungkannleichtverworfenwerden
    KeineandereÄnderunghängt von ihrab
    Code Review | © 2010 by M. Sohn
  • 32. Gerrit - Workflow
    Code Review | © 2010 by M. Sohn
  • 33. Gerrit
    http://egit.eclipse.org/r/ - change,825
    Code Review | © 2010 by M. Sohn
  • 34. Gerrit – LebenszykluseinerÄnderung
    topic
    master
    1
    a
    Code Review | © 2010 by M. Sohn
  • 39. Gerrit – LebenszykluseinerÄnderung
    topic
    master
    1
    a
    master
    topic
    • Verbesserung auf Basis des Reviews
    • 44. pushenneuer Patch Sets
    c
    3
    b
    2
    a
    1
    Code Review | © 2010 by M. Sohn
  • 45. Gerrit – LebenszykluseinerÄnderung
    master
    topic
    master
    d
    topic
    1
    a
    c
    3
    b
    2
    master
    topic
    • Verbesserung auf Basis des Reviews
    • 50. pushenneuer Patch Sets
    a
    c
    1
    3
    b
    • Submit kannzuserverseitigem merge führen
    • 51. Alternative: Lokalesmergen/ rebasenvordem push
    2
    a
    1
    Code Review | © 2010 by M. Sohn
  • 52. Code Review – UnsereErfahrungen
    AlleÄnderungenwerdengereviewt!
    Ein Review kanndauern(1 Tag … Wochen) 
    Codeautoren müssen auf den Review warten
    Einparalleler Workflow istnötig
    JedesTeammitgliedsolltesichbeteiligen
    Git & Gerritsindaußerordentlichhilfreich
    Code Review | © 2010 by M. Sohn
  • 53. Code Review – Tipps
    KleineÄnderungen
    EineÄnderungsollteatomarsein
    EineÄnderungsollteweder Build noch Tests brechen
    GrößereÄnderungensollten in eineSerie von kleinerenunterteiltwerden (patch series)
    - Die letzteÄnderungschaltet das Feature ein
    Die Commit message sollte das Warumerläutern
    - Das Wassollteausdem Code klarhervorgehen
    Code Review | © 2010 by M. Sohn
  • 54. No Free Lunch -- DEMO
     
     
     
     
     
     
     
     
    The best way to learn Git is to use Git
    Understanding and Using Git at Eclipse | © 2010 by C. Aniszczyk, S. Pearce, R. Rosenberg and M. Sohn
  • 55. Zusammenfassung
    DVCS wiez.B. Gitsindleistungsstark
    Gitunterstützt Branches und Merging hervorragend
     
    Gitistschnell und skaliert
     
    Gerritermöglichteinen Review workflow
    Gitund Gerriteignensichfür den EinsatzimUnternehmen
    Understanding and Using Git at Eclipse | © 2010 by C. Aniszczyk, S. Pearce, R. Rosenberg and M. Sohn
  • 56. Resources
    Ask questions on the EGit forum or egit-dev/jgit-dev lists
    http://git-scm.com/documentation is your friend
    If you want comedy, watch Linus' talk at Google
        http://www.youtube.com/watch?v=4XpnKHJAok8
    Read the Pro Git book - http://progit.org/book/
    Understanding and Using Git at Eclipse | © 2010 by C. Aniszczyk, S. Pearce, R. Rosenberg and M. Sohn
  • 57. Features EGit 0.8
    Supported
    Partially supported
    Not yet supported
    * planned for 0.9
    24
  • 79. Eclipse – Review Process
    Contributors
    • create patch using CVS, SVN, Git
    • 80. attach patch to bug in Bugzilla
    Committers
    • do code and IP review
    • 81. comment, vote in Bugzilla
    • 82. create CQ for changes needing IP review
    • 83. commit accepted changes
    IP Team
    • does IP review bigger changes from contributors
    Code Review | © 2010 by M. Sohn
  • 84. Gerrit- Workflow
    Every change is reviewed
    - Authors can invite reviewers
    - Complex changes reviewed by many
    Look at the change
    - Comment on how to improve it
    - Discuss in context of the change
    Download the change
    - test it
    - improve it
    Discussion usually leads to new improved change
    Code Review | © 2010 by M. Sohn
  • 85. Code Review
    dailyworkwithcodereview
    improvesquality
    helpslearningandavoidingsilos
    reviewtakes time -> parallel workflow -> githelps a lothere
    peercodereviewandautomatedverification on isolatedchange -> voting -> improvechangebased on comments -> submittomaster -> centralbuildandtest