22
Towards Contributor's Heaven From CVS and SVN to Git Shawn Pearce Robin Rosenberg Matthias Sohn eclipse.org/egit

EclipseCon 2010 talk: Towards contributors heaven

  • Upload
    msohn

  • View
    9.662

  • Download
    0

Embed Size (px)

DESCRIPTION

EclipseCon 2010 talk

Citation preview

Page 1: EclipseCon 2010 talk: Towards contributors heaven

Towards Contributor's HeavenFrom CVS and SVN to Git

Shawn PearceRobin Rosenberg

Matthias Sohn

eclipse.org/egit

Page 2: EclipseCon 2010 talk: Towards contributors heaven

What is Git?

Distributed Version Control SystemPatch management

Created for the Linux Kernel

E-mail based contributionsThousands of contributors

High activityParallel developmentStrong focus on code review

eclipse.org/egit

Page 3: EclipseCon 2010 talk: Towards contributors heaven

Distributed Version Control

Page 4: EclipseCon 2010 talk: Towards contributors heaven

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

Page 5: EclipseCon 2010 talk: Towards contributors heaven

Distributed Version Control

eclipse.org/egit

Page 6: EclipseCon 2010 talk: Towards contributors heaven

Chaos?

Projects use only a subset of potential workflowsIndividuals 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

Page 7: EclipseCon 2010 talk: Towards contributors heaven

Git Internals Crash Course

Cryptographic signatures ... ensures data integrity

Snapshot based ... saves whole project

eclipse.org/egit

Page 8: EclipseCon 2010 talk: Towards contributors heaven

Git Internals Crash Course

Cryptographic signatures ... ensures data integrity

Snapshot based ... saves whole project

History stored as graph ... accurate records

eclipse.org/egit

Page 9: EclipseCon 2010 talk: Towards contributors heaven

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

Page 10: EclipseCon 2010 talk: Towards contributors heaven

EGit Project History

Page 11: EclipseCon 2010 talk: Towards contributors heaven

EGit Project History

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

eclipse.org/egit

Page 12: EclipseCon 2010 talk: Towards contributors heaven

EGit Project History

2005 Linus Torvalds starts Git2006 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

Page 13: EclipseCon 2010 talk: Towards contributors heaven

EGit Project History

2005 Linus Torvalds starts Git2006 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

Page 14: EclipseCon 2010 talk: Towards contributors heaven

EGit Project History

2005 Linus Torvalds starts Git2006 Proof-of-concept, quite unusable2007 Index reader, quickdiff2008 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

Page 15: EclipseCon 2010 talk: Towards contributors heaven

EGit Project History

2005 Linus Torvalds starts Git2006 Proof-of-concept, quite unusable2007 Index reader, quickdiff2008 Add history view, commit, push/fetch2009 Moved to Eclipse.org

2010 Diff/Merge Exit Incubation Release 1.0

eclipse.org/egit

Page 16: EclipseCon 2010 talk: Towards contributors heaven

Why JGit Rocks

Page 17: EclipseCon 2010 talk: Towards contributors heaven

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

Page 18: EclipseCon 2010 talk: Towards contributors heaven

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

Page 19: EclipseCon 2010 talk: Towards contributors heaven

Current State

Usable: clone, commit, push, pull, history, diffMissing: merge, rebase, gc (use C Git command line for now ... coming soon)

Performance on par with C

More active communityDevelopment accelerating

Eclipse integration improving

eclipse.org/egit

Page 20: EclipseCon 2010 talk: Towards contributors heaven

Quick EGit Demo

with Gerrit Code Review

Page 21: EclipseCon 2010 talk: Towards contributors heaven

Future

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

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

eclipse.org/egit

Page 22: EclipseCon 2010 talk: Towards contributors heaven

Thank You

eclipse.org/egit

Want More?

"Understanding and Using Git at Eclipse"

Thursday @ 10 am in Stevens Creek