Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Towards Contributor's Heaven
     From CVS and SVN to Git



            Shawn Pearce
           Robin Rosenberg
         ...
What is Git?

Distributed Version Control System
Patch management


Created for the Linux Kernel

   E-mail based contribu...
Distributed Version Control
Distributed Version Control

Enables every contributor ... not just committers

Has full history ... locally

Can branch, ...
Distributed Version Control




                              eclipse.org/egit
Chaos?

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

Examp...
Git Internals Crash Course

Cryptographic signatures ... ensures data integrity

Snapshot based ... saves whole project


...
Git Internals Crash Course

Cryptographic signatures ... ensures data integrity

Snapshot based ... saves whole project

H...
Git Internals Crash Course

Cryptographic signatures ... ensures data integrity

Snapshot based ... saves whole project

H...
EGit Project History
EGit Project History

2005   Linus Torvalds starts Git
2006   Proof-of-concept, quite unusable
       Not a "port", ground...
EGit Project History

2005   Linus Torvalds starts Git
2006   Proof-of-concept, quite unusable
       Not a "port", ground...
EGit Project History

2005   Linus Torvalds starts Git
2006   Proof-of-concept, quite unusable
       Not a "port", ground...
EGit Project History

2005   Linus Torvalds starts Git
2006   Proof-of-concept, quite unusable
2007   Index reader, quickd...
EGit Project History

2005   Linus Torvalds starts Git
2006   Proof-of-concept, quite unusable
2007   Index reader, quickd...
Why JGit Rocks
Applications Built On JGit

Open Source
 EGit                                 Eclipse Team Provider
 NBGit                ...
Applications Built On JGit

Open Source
 EGit                                 Eclipse Team Provider
 NBGit                ...
Current State
Usable:      clone, commit, push, pull, history, diff
Missing:     merge, rebase, gc
 (use C Git command lin...
Quick EGit Demo


with Gerrit Code Review
Future

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

Complet...
Thank You


Want More?


  "Understanding and Using Git at Eclipse"

  Thursday @ 10 am
  in Stevens Creek



            ...
Upcoming SlideShare
Loading in …5
×

EclipseCon 2010 talk: Towards contributors heaven

10,434 views

Published on

EclipseCon 2010 talk

Published in: Technology
  • Be the first to comment

EclipseCon 2010 talk: Towards contributors heaven

  1. 1. Towards Contributor's Heaven From CVS and SVN to Git Shawn Pearce Robin Rosenberg Matthias Sohn eclipse.org/egit
  2. 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
  3. 3. Distributed Version Control
  4. 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. 5. Distributed Version Control eclipse.org/egit
  6. 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. 7. Git Internals Crash Course Cryptographic signatures ... ensures data integrity Snapshot based ... saves whole project eclipse.org/egit
  8. 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. 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
  10. 10. EGit Project History
  11. 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. 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. 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. 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. 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
  16. 16. Why JGit Rocks
  17. 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. 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. 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. 20. Quick EGit Demo with Gerrit Code Review
  21. 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. 22. Thank You Want More? "Understanding and Using Git at Eclipse" Thursday @ 10 am in Stevens Creek eclipse.org/egit

×