SlideShare a Scribd company logo
1 of 22
Download to read offline
Towards Contributor's Heaven
     From CVS and SVN to Git



            Shawn Pearce
           Robin Rosenberg
            Matthias Sohn

                               eclipse.org/egit
What is Git?

Distributed Version Control System
Patch management


Created for the Linux Kernel

   E-mail based contributions
   Thousands of contributors

   High activity
   Parallel development
   Strong focus on code review

                                     eclipse.org/egit
Distributed Version Control
Distributed Version Control

Enables every contributor ... not just committers

Has full history ... locally

Can branch, merge, rebase ... locally

Can exchange work with others ... peer to peer

Superior branch, merge functionality




                                                    eclipse.org/egit
Distributed Version Control




                              eclipse.org/egit
Chaos?

Projects use only a subset of potential workflows
Individuals use personal workflows that others do not see

Examples:

Git   (C implementation)   All contributions are e-mailed

EGit/JGit                  All contributions via Gerrit
                           (Used to be e-mail)


Linux kernel               All contributions e-mailed
                           Subsystem maintainers also pull


                                                          eclipse.org/egit
Git Internals Crash Course

Cryptographic signatures ... ensures data integrity

Snapshot based ... saves whole project




                                                      eclipse.org/egit
Git Internals Crash Course

Cryptographic signatures ... ensures data integrity

Snapshot based ... saves whole project

History stored as graph ... accurate records




                                                      eclipse.org/egit
Git Internals Crash Course

Cryptographic signatures ... ensures data integrity

Snapshot based ... saves whole project

History stored as graph ... accurate records




Smarter merges ... makes branching cheap
                                                      eclipse.org/egit
EGit Project History
EGit Project History

2005   Linus Torvalds starts Git
2006   Proof-of-concept, quite unusable
       Not a "port", ground-up pure Java
       Originally one project




                                           eclipse.org/egit
EGit Project History

2005   Linus Torvalds starts Git
2006   Proof-of-concept, quite unusable
       Not a "port", ground-up pure Java
       Originally one project

2007   Index reader, quickdiff
       First useful minimal functionality versions




                                                     eclipse.org/egit
EGit Project History

2005   Linus Torvalds starts Git
2006   Proof-of-concept, quite unusable
       Not a "port", ground-up pure Java
       Originally one project

2007   Index reader, quickdiff
       First useful versions

2008   Add history view, commit, push/fetch
       Much more usable
       License change      ( EGit: EPL, JGit: BSD/EDL )



                                                  eclipse.org/egit
EGit Project History

2005   Linus Torvalds starts Git
2006   Proof-of-concept, quite unusable
2007   Index reader, quickdiff
2008   Add history view, commit, push/fetch

2009   >5000 downloads/month

       Split into two projects
             EGit - team provider
             JGit - reusable library

       Moved to Eclipse.org

                                              eclipse.org/egit
EGit Project History

2005   Linus Torvalds starts Git
2006   Proof-of-concept, quite unusable
2007   Index reader, quickdiff
2008   Add history view, commit, push/fetch
2009   Moved to Eclipse.org

2010 Diff/Merge
     Exit Incubation
     Release 1.0




                                              eclipse.org/egit
Why JGit Rocks
Applications Built On JGit

Open Source
 EGit                                 Eclipse Team Provider
 NBGit                               Git Support for NetBeans
 Gerrit Code Review                  Web based project management and peer code review
 Buckminster, Maven, JIRA, Hudson, ...




                                                                                         eclipse.org/jgit
Applications Built On JGit

Open Source
 EGit                                 Eclipse Team Provider
 NBGit                               Git Support for NetBeans
 Gerrit Code Review                  Web based project management and peer code review
 Buckminster, Maven, JIRA, Hudson, ...

Commercial
 TeamCity                             Commercial continuous integration
 SmartGit                             Commercial GUI client
 CodeBeamer MR                         Commercial project management




                                                                                         eclipse.org/jgit
Current State
Usable:      clone, commit, push, pull, history, diff
Missing:     merge, rebase, gc
 (use C Git command line for now ... coming soon)



Performance on par with C

More active community
Development accelerating

Eclipse integration improving




                                                        eclipse.org/egit
Quick EGit Demo


with Gerrit Code Review
Future

Standard Eclipse SCM      ... migrate from CVS/SVN
Standard Eclipse plugin    ... shipped in all packages

Complete implementation ... no C code required
Standard outside Eclipse ... BSD license is very friendly




                                                     eclipse.org/egit
Thank You


Want More?


  "Understanding and Using Git at Eclipse"

  Thursday @ 10 am
  in Stevens Creek



                                             eclipse.org/egit

More Related Content

What's hot

Using Git in Eclipse - Eclipse Summit Europe 2010-11-03
Using Git in Eclipse - Eclipse Summit Europe 2010-11-03Using Git in Eclipse - Eclipse Summit Europe 2010-11-03
Using Git in Eclipse - Eclipse Summit Europe 2010-11-03
msohn
 
Assign, commit, and review - A developer’s guide to OpenStack contribution-20...
Assign, commit, and review - A developer’s guide to OpenStack contribution-20...Assign, commit, and review - A developer’s guide to OpenStack contribution-20...
Assign, commit, and review - A developer’s guide to OpenStack contribution-20...
OpenCity Community
 
Git: A Getting Started Presentation
Git: A Getting Started PresentationGit: A Getting Started Presentation
Git: A Getting Started Presentation
Nap Ramirez
 

What's hot (20)

Git & git hub
Git & git hubGit & git hub
Git & git hub
 
Introducing Git and git flow
Introducing Git and git flow Introducing Git and git flow
Introducing Git and git flow
 
OSGi Versioning & Testing
OSGi Versioning & TestingOSGi Versioning & Testing
OSGi Versioning & Testing
 
Using Git in Eclipse - Eclipse Summit Europe 2010-11-03
Using Git in Eclipse - Eclipse Summit Europe 2010-11-03Using Git in Eclipse - Eclipse Summit Europe 2010-11-03
Using Git in Eclipse - Eclipse Summit Europe 2010-11-03
 
Helios in Action: Git at Eclipse
Helios in Action: Git at EclipseHelios in Action: Git at Eclipse
Helios in Action: Git at Eclipse
 
Git
GitGit
Git
 
Git training with Devaamo
Git training with DevaamoGit training with Devaamo
Git training with Devaamo
 
Git in Eclipse
Git in EclipseGit in Eclipse
Git in Eclipse
 
Introduction to Git and Github
Introduction to Git and Github Introduction to Git and Github
Introduction to Git and Github
 
Version Control with Git
Version Control with GitVersion Control with Git
Version Control with Git
 
Git and GitHub - The beginning
Git and GitHub - The beginning Git and GitHub - The beginning
Git and GitHub - The beginning
 
Git and GitHub | Concept about Git and GitHub Process | Git Process overview
Git and GitHub | Concept about Git and GitHub Process | Git Process overviewGit and GitHub | Concept about Git and GitHub Process | Git Process overview
Git and GitHub | Concept about Git and GitHub Process | Git Process overview
 
Git and Eclipse - Eclipse Helios DemoCamp Jena 2010
Git and Eclipse - Eclipse Helios DemoCamp Jena 2010Git and Eclipse - Eclipse Helios DemoCamp Jena 2010
Git and Eclipse - Eclipse Helios DemoCamp Jena 2010
 
Assign, commit, and review - A developer’s guide to OpenStack contribution-20...
Assign, commit, and review - A developer’s guide to OpenStack contribution-20...Assign, commit, and review - A developer’s guide to OpenStack contribution-20...
Assign, commit, and review - A developer’s guide to OpenStack contribution-20...
 
Github
GithubGithub
Github
 
Version Control System - Git
Version Control System - GitVersion Control System - Git
Version Control System - Git
 
Git n git hub
Git n git hubGit n git hub
Git n git hub
 
Assign, Commit, and Review
Assign, Commit, and ReviewAssign, Commit, and Review
Assign, Commit, and Review
 
Web Programming - Git basics
Web Programming - Git basicsWeb Programming - Git basics
Web Programming - Git basics
 
Git: A Getting Started Presentation
Git: A Getting Started PresentationGit: A Getting Started Presentation
Git: A Getting Started Presentation
 

Similar to EclipseCon 2010 talk: Towards contributors heaven

Code Matters - Eclipse Hackers Git Guide - EclipseCon France 2014
Code Matters - Eclipse Hackers Git Guide - EclipseCon France 2014Code Matters - Eclipse Hackers Git Guide - EclipseCon France 2014
Code Matters - Eclipse Hackers Git Guide - EclipseCon France 2014
msohn
 
News from Git in Java Land
News from Git in Java LandNews from Git in Java Land
News from Git in Java Land
msohn
 
Egit democamp-karlsruhe-2011-11-29
Egit democamp-karlsruhe-2011-11-29Egit democamp-karlsruhe-2011-11-29
Egit democamp-karlsruhe-2011-11-29
Stefan Lay
 
Git, YouTrack and TeamCity - DDDSydney 2011
Git, YouTrack and TeamCity - DDDSydney 2011Git, YouTrack and TeamCity - DDDSydney 2011
Git, YouTrack and TeamCity - DDDSydney 2011
thinkddd
 

Similar to EclipseCon 2010 talk: Towards contributors heaven (20)

Code Matters - Eclipse Hackers Git Guide - EclipseCon France 2014
Code Matters - Eclipse Hackers Git Guide - EclipseCon France 2014Code Matters - Eclipse Hackers Git Guide - EclipseCon France 2014
Code Matters - Eclipse Hackers Git Guide - EclipseCon France 2014
 
Git for Windows
Git for WindowsGit for Windows
Git for Windows
 
Development with Git and Gerrit - Eclipse DemoCamp Stuttgart - 2010-11-23
Development with Git and Gerrit - Eclipse DemoCamp Stuttgart - 2010-11-23Development with Git and Gerrit - Eclipse DemoCamp Stuttgart - 2010-11-23
Development with Git and Gerrit - Eclipse DemoCamp Stuttgart - 2010-11-23
 
EGit and Gerrit Code Review - Eclipse DemoCamp Bonn - 2010-11-16
EGit and Gerrit Code Review - Eclipse DemoCamp Bonn - 2010-11-16EGit and Gerrit Code Review - Eclipse DemoCamp Bonn - 2010-11-16
EGit and Gerrit Code Review - Eclipse DemoCamp Bonn - 2010-11-16
 
Eclipse Hackers Guide to the Git Universe - Eclipse democamp Vienna 2011-12-02
Eclipse Hackers Guide to the Git Universe - Eclipse democamp Vienna 2011-12-02Eclipse Hackers Guide to the Git Universe - Eclipse democamp Vienna 2011-12-02
Eclipse Hackers Guide to the Git Universe - Eclipse democamp Vienna 2011-12-02
 
Git/Gerrit with TeamForge
Git/Gerrit with TeamForgeGit/Gerrit with TeamForge
Git/Gerrit with TeamForge
 
News from Git in Java Land
News from Git in Java LandNews from Git in Java Land
News from Git in Java Land
 
Egit democamp-karlsruhe-2011-11-29
Egit democamp-karlsruhe-2011-11-29Egit democamp-karlsruhe-2011-11-29
Egit democamp-karlsruhe-2011-11-29
 
Mini-training: Let’s Git It!
Mini-training: Let’s Git It!Mini-training: Let’s Git It!
Mini-training: Let’s Git It!
 
Kubernetes GitOps featuring GitHub, Kustomize and ArgoCD
Kubernetes GitOps featuring GitHub, Kustomize and ArgoCDKubernetes GitOps featuring GitHub, Kustomize and ArgoCD
Kubernetes GitOps featuring GitHub, Kustomize and ArgoCD
 
Code Review with Git and Gerrit - Devoxx 2011 - Tools in Action - 2011-11-14
Code Review with Git and Gerrit - Devoxx 2011 - Tools in Action - 2011-11-14Code Review with Git and Gerrit - Devoxx 2011 - Tools in Action - 2011-11-14
Code Review with Git and Gerrit - Devoxx 2011 - Tools in Action - 2011-11-14
 
Git
GitGit
Git
 
Egit 1.0
Egit 1.0Egit 1.0
Egit 1.0
 
Git Presentation
Git PresentationGit Presentation
Git Presentation
 
Git version control
Git version controlGit version control
Git version control
 
Git, YouTrack and TeamCity - DDDSydney 2011
Git, YouTrack and TeamCity - DDDSydney 2011Git, YouTrack and TeamCity - DDDSydney 2011
Git, YouTrack and TeamCity - DDDSydney 2011
 
KubeCon 2022 EU Flux Security.pdf
KubeCon 2022 EU Flux Security.pdfKubeCon 2022 EU Flux Security.pdf
KubeCon 2022 EU Flux Security.pdf
 
Git essential training & sharing self
Git essential training & sharing selfGit essential training & sharing self
Git essential training & sharing self
 
ePOM - Fundamentals of Research Software Development - Code Version Control
ePOM - Fundamentals of Research Software Development - Code Version ControlePOM - Fundamentals of Research Software Development - Code Version Control
ePOM - Fundamentals of Research Software Development - Code Version Control
 
Gerrit linuxtag2011
Gerrit linuxtag2011Gerrit linuxtag2011
Gerrit linuxtag2011
 

More from msohn

More from msohn (20)

Project Gardener - EclipseCon Europe - 2018-10-23
Project Gardener - EclipseCon Europe - 2018-10-23Project Gardener - EclipseCon Europe - 2018-10-23
Project Gardener - EclipseCon Europe - 2018-10-23
 
Git journey from mars to neon EclipseCon North America - 2016-03-08
Git journey from mars to neon   EclipseCon North America - 2016-03-08Git journey from mars to neon   EclipseCon North America - 2016-03-08
Git journey from mars to neon EclipseCon North America - 2016-03-08
 
Versioning large binary files with JGit, EGit and Gerrit
Versioning large binary files with JGit, EGit and GerritVersioning large binary files with JGit, EGit and Gerrit
Versioning large binary files with JGit, EGit and Gerrit
 
News from Git in Eclipse - EclipseCon 2015 Europe
News from Git in Eclipse - EclipseCon 2015 EuropeNews from Git in Eclipse - EclipseCon 2015 Europe
News from Git in Eclipse - EclipseCon 2015 Europe
 
Git missiontomars 2015-03-10
Git missiontomars 2015-03-10Git missiontomars 2015-03-10
Git missiontomars 2015-03-10
 
News from EGit - Talk EclipseCon Europe 2014 - Ludwigsburg
News from EGit - Talk EclipseCon Europe 2014 - LudwigsburgNews from EGit - Talk EclipseCon Europe 2014 - Ludwigsburg
News from EGit - Talk EclipseCon Europe 2014 - Ludwigsburg
 
Git Tutorial EclipseCon France 2014 - Gerrit Exercise 9 - starting demo gerrit
Git Tutorial EclipseCon France 2014 - Gerrit Exercise 9 - starting demo gerritGit Tutorial EclipseCon France 2014 - Gerrit Exercise 9 - starting demo gerrit
Git Tutorial EclipseCon France 2014 - Gerrit Exercise 9 - starting demo gerrit
 
Git Tutorial EclipseCon France 2014 - Gerrit Exercise 7 - new changescreen
Git Tutorial EclipseCon France 2014 - Gerrit Exercise 7 - new changescreenGit Tutorial EclipseCon France 2014 - Gerrit Exercise 7 - new changescreen
Git Tutorial EclipseCon France 2014 - Gerrit Exercise 7 - new changescreen
 
Git Tutorial EclipseCon France 2014 - Gerrit Exercise 6 - submit a change
Git Tutorial EclipseCon France 2014 - Gerrit Exercise 6 - submit a changeGit Tutorial EclipseCon France 2014 - Gerrit Exercise 6 - submit a change
Git Tutorial EclipseCon France 2014 - Gerrit Exercise 6 - submit a change
 
Git Tutorial EclipseCon France 2014 - Gerrit Exercise 5 - improve a change
Git Tutorial EclipseCon France 2014 - Gerrit Exercise 5 - improve a changeGit Tutorial EclipseCon France 2014 - Gerrit Exercise 5 - improve a change
Git Tutorial EclipseCon France 2014 - Gerrit Exercise 5 - improve a change
 
Git Tutorial EclipseCon France 2014 - Gerrit Exercise 4 - review change
Git Tutorial EclipseCon France 2014 - Gerrit Exercise 4 - review changeGit Tutorial EclipseCon France 2014 - Gerrit Exercise 4 - review change
Git Tutorial EclipseCon France 2014 - Gerrit Exercise 4 - review change
 
Git Tutorial EclipseCon France 2014 - Gerrit Exercise 3 - push change to gerrit
Git Tutorial EclipseCon France 2014 - Gerrit Exercise 3 - push change to gerritGit Tutorial EclipseCon France 2014 - Gerrit Exercise 3 - push change to gerrit
Git Tutorial EclipseCon France 2014 - Gerrit Exercise 3 - push change to gerrit
 
Git Tutorial EclipseCon France 2014 - Gerrit Exercise 2 - fetch the latest state
Git Tutorial EclipseCon France 2014 - Gerrit Exercise 2 - fetch the latest stateGit Tutorial EclipseCon France 2014 - Gerrit Exercise 2 - fetch the latest state
Git Tutorial EclipseCon France 2014 - Gerrit Exercise 2 - fetch the latest state
 
Git Tutorial EclipseCon France 2014 - Gerrit Exercise 1 - configure for gerrit
Git Tutorial EclipseCon France 2014 - Gerrit Exercise 1 - configure for gerritGit Tutorial EclipseCon France 2014 - Gerrit Exercise 1 - configure for gerrit
Git Tutorial EclipseCon France 2014 - Gerrit Exercise 1 - configure for gerrit
 
Git Tutorial EclipseCon France 2014 - Gerrit Exercise 8 - view gerrit review ...
Git Tutorial EclipseCon France 2014 - Gerrit Exercise 8 - view gerrit review ...Git Tutorial EclipseCon France 2014 - Gerrit Exercise 8 - view gerrit review ...
Git Tutorial EclipseCon France 2014 - Gerrit Exercise 8 - view gerrit review ...
 
Git Tutorial EclipseCon France 2014 - Git Exercise 07 - git blame
Git Tutorial EclipseCon France 2014 - Git Exercise 07 - git blameGit Tutorial EclipseCon France 2014 - Git Exercise 07 - git blame
Git Tutorial EclipseCon France 2014 - Git Exercise 07 - git blame
 
Git Tutorial EclipseCon France 2014 - Git Exercise 06 - interactive rebase
Git Tutorial EclipseCon France 2014 - Git Exercise 06 - interactive rebaseGit Tutorial EclipseCon France 2014 - Git Exercise 06 - interactive rebase
Git Tutorial EclipseCon France 2014 - Git Exercise 06 - interactive rebase
 
Git Tutorial EclipseCon France 2014 - Git Exercise 05 - history view
Git Tutorial EclipseCon France 2014 - Git Exercise 05 - history viewGit Tutorial EclipseCon France 2014 - Git Exercise 05 - history view
Git Tutorial EclipseCon France 2014 - Git Exercise 05 - history view
 
Git Tutorial EclipseCon France 2014 - Git Exercise 04 - merging rebasing and ...
Git Tutorial EclipseCon France 2014 - Git Exercise 04 - merging rebasing and ...Git Tutorial EclipseCon France 2014 - Git Exercise 04 - merging rebasing and ...
Git Tutorial EclipseCon France 2014 - Git Exercise 04 - merging rebasing and ...
 
Git Tutorial EclipseCon France 2014 - Git Exercise 03 - work on branches in p...
Git Tutorial EclipseCon France 2014 - Git Exercise 03 - work on branches in p...Git Tutorial EclipseCon France 2014 - Git Exercise 03 - work on branches in p...
Git Tutorial EclipseCon France 2014 - Git Exercise 03 - work on branches in p...
 

Recently uploaded

Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
vu2urc
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 

Recently uploaded (20)

Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 

EclipseCon 2010 talk: Towards contributors heaven

  • 1. Towards Contributor's Heaven From CVS and SVN to Git Shawn Pearce Robin Rosenberg Matthias Sohn eclipse.org/egit
  • 2. What is Git? Distributed Version Control System Patch management Created for the Linux Kernel E-mail based contributions Thousands of contributors High activity Parallel development Strong focus on code review eclipse.org/egit
  • 4. Distributed Version Control Enables every contributor ... not just committers Has full history ... locally Can branch, merge, rebase ... locally Can exchange work with others ... peer to peer Superior branch, merge functionality eclipse.org/egit
  • 5. Distributed Version Control eclipse.org/egit
  • 6. Chaos? Projects use only a subset of potential workflows Individuals use personal workflows that others do not see Examples: Git (C implementation) All contributions are e-mailed EGit/JGit All contributions via Gerrit (Used to be e-mail) Linux kernel All contributions e-mailed Subsystem maintainers also pull eclipse.org/egit
  • 7. Git Internals Crash Course Cryptographic signatures ... ensures data integrity Snapshot based ... saves whole project eclipse.org/egit
  • 8. Git Internals Crash Course Cryptographic signatures ... ensures data integrity Snapshot based ... saves whole project History stored as graph ... accurate records eclipse.org/egit
  • 9. Git Internals Crash Course Cryptographic signatures ... ensures data integrity Snapshot based ... saves whole project History stored as graph ... accurate records Smarter merges ... makes branching cheap eclipse.org/egit
  • 11. EGit Project History 2005 Linus Torvalds starts Git 2006 Proof-of-concept, quite unusable Not a "port", ground-up pure Java Originally one project eclipse.org/egit
  • 12. EGit Project History 2005 Linus Torvalds starts Git 2006 Proof-of-concept, quite unusable Not a "port", ground-up pure Java Originally one project 2007 Index reader, quickdiff First useful minimal functionality versions eclipse.org/egit
  • 13. EGit Project History 2005 Linus Torvalds starts Git 2006 Proof-of-concept, quite unusable Not a "port", ground-up pure Java Originally one project 2007 Index reader, quickdiff First useful versions 2008 Add history view, commit, push/fetch Much more usable License change ( EGit: EPL, JGit: BSD/EDL ) eclipse.org/egit
  • 14. EGit Project History 2005 Linus Torvalds starts Git 2006 Proof-of-concept, quite unusable 2007 Index reader, quickdiff 2008 Add history view, commit, push/fetch 2009 >5000 downloads/month Split into two projects EGit - team provider JGit - reusable library Moved to Eclipse.org eclipse.org/egit
  • 15. EGit Project History 2005 Linus Torvalds starts Git 2006 Proof-of-concept, quite unusable 2007 Index reader, quickdiff 2008 Add history view, commit, push/fetch 2009 Moved to Eclipse.org 2010 Diff/Merge Exit Incubation Release 1.0 eclipse.org/egit
  • 17. Applications Built On JGit Open Source EGit Eclipse Team Provider NBGit Git Support for NetBeans Gerrit Code Review Web based project management and peer code review Buckminster, Maven, JIRA, Hudson, ... eclipse.org/jgit
  • 18. Applications Built On JGit Open Source EGit Eclipse Team Provider NBGit Git Support for NetBeans Gerrit Code Review Web based project management and peer code review Buckminster, Maven, JIRA, Hudson, ... Commercial TeamCity Commercial continuous integration SmartGit Commercial GUI client CodeBeamer MR Commercial project management eclipse.org/jgit
  • 19. Current State Usable: clone, commit, push, pull, history, diff Missing: merge, rebase, gc (use C Git command line for now ... coming soon) Performance on par with C More active community Development accelerating Eclipse integration improving eclipse.org/egit
  • 20. Quick EGit Demo with Gerrit Code Review
  • 21. Future Standard Eclipse SCM ... migrate from CVS/SVN Standard Eclipse plugin ... shipped in all packages Complete implementation ... no C code required Standard outside Eclipse ... BSD license is very friendly eclipse.org/egit
  • 22. Thank You Want More? "Understanding and Using Git at Eclipse" Thursday @ 10 am in Stevens Creek eclipse.org/egit