Loading…

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

Like this presentation? Why not share!

AtlasCamp 2010: What is DVCS and why it will change the way we work - Jens Schumacher

on

  • 1,618 views

 

Statistics

Views

Total Views
1,618
Views on SlideShare
1,343
Embed Views
275

Actions

Likes
0
Downloads
11
Comments
0

4 Embeds 275

http://www.atlassian.com 251
https://www.atlassian.com 12
http://magnolia-staging.private.atlassian.com 11
http://qa-wac.atlassian.com 1

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    AtlasCamp 2010: What is DVCS and why it will change the way we work - Jens Schumacher AtlasCamp 2010: What is DVCS and why it will change the way we work - Jens Schumacher Presentation Transcript

    • 2010
    • Check in buggy code and drive everyone else crazy or Avoid checking it in until it’s fully debugged The Subversion Dilemma !
    • Weeks without Version Control The Subversion Dilemma !
    • 2010 What is DVCS and why it will Jens Schumacher – Atlassian change the way we work!
    • 1.  Mercurial vs. Subversion 2.  Basic concepts 3.  Use cases Overview!
    • Subversion vs Mercurial!
    • Merging Subversion vs Mercurial!
    • Branching Subversion vs Mercurial!
    • Repository Access Subversion vs Mercurial!
    • Performance Subversion vs Mercurial!
    • Sharing Subversion vs Mercurial!
    • Tool Support Subversion vs Mercurial!
    • Authentication Subversion vs Mercurial!
    • Check Out Subversion vs Mercurial!
    • Subversion vs Mercurial!
    • 1.  Mercurial vs. Subversion 2.  Basic concepts 3.  Use cases Overview!
    • Repository Architecture!
    • Subversion!
    • Mercurial!
    • Revisions Subversion is always linear Subversion!
    • head Changesets Each Changeset can have multiple children Mercurial!
    • head head Mercurial!
    • Pull Merge Mercurial!
    • "hg commit" adds a new node "hg push" and "hg pull" transfer nodes in the graph between two repositories "hg merge" merge changes in a repository Mercurial!
    • Branching in Mercurial! •  Forks" •  Named Branches" •  Bookmarks" •  Anonymous Branches"
    • Forks!
    • Advantages" Disadvantages" •  Complete Isolation" •  Forking is slower" •  Very easy to discard" 1 2 Forks!
    • When to use Forks" •  When you donʼt have commit access" •  To experiment" •  For a build repository" Forks!
    • Named Branches!
    • Advantages" Disadvantages" •  Branch Metadata" •  Branch Metadata" •  Faster than Forking" •  Closing a Branch (fixed in 1.2)" Named Branches!
    • When to use Named Branches" •  Working in a team on a feature" Named Branches!
    • Bookmarks!
    • Advantages" Disadvantages" •  Lightweight" •  Local (fixed in 1.6) " •  Can be deleted" •  Possible loss of context " •  Similar to git" Bookmarks!
    • When to use Bookmarks" •  Working in a team on a feature" •  If you like to way git does branching" •  If you use Mercurial 1.6" Bookmarks!
    • Anonymous Branches!
    • Advantages" Disadvantages" •  Fast " •  No description" •  No name required" •  Changeset # required •  No closing required" (lookup with hg log)" Anonymous Branches!
    • When to use Anonymous Branches" •  For quick & small fixes" Anonymous Branches!
    • 1.  Mercurial vs. Subversion 2.  Basic concepts 3.  Use cases Overview!
    • Mercurial code hosting" •  Free for 5 users" •  Unlimited public collaborators" •  Unlimited disk space" BitBucket!
    • Getting Started!
    • hg init create a new repositoryhg commit save your changes in the current repositoryhg log see all changes in your repositoryhg pull pull all changes from another repository into yourshg push push your changes into another repositoryhg merge join different lines of history hg update update the repository's working di rectoryhg help <command> The Basics!
    • Use Case Work on several features in parallel Separate Features!
    • Clone $ hg clone project feature$ cd feature$ (do some changes and commits) Separate Features!
    • Incoming $ cd ../project$ hg incoming ../feature Use hg incoming --patch to view the diffs Separate Features!
    • Pull $ hg pull ../feature The history of feature one is now in your project. However, changes are not yet visible and only stored in the .hg directory Separate Features!
    • Merge $ hg merge Commit $ hg commit(enter commit message) Separate Features!
    • Changesets Separate Features!
    • Use Case Using Mercurial to help coordinate the coding Collaborative Feature Development!
    • Create a branch $ hg branch feature(do some changes)$ hg commit(write commit message) $ hg update feature(do some changes)$ hg commit(write commit message) Collaborative Feature Development!
    • Merge the named branch $ hg update default$ hg merge feature$ hg commit(write commit message) Named branches stay in history as permanent records after you finished your work. Collaborative Feature Development!
    • Changesets Collaborative Feature Development!
    • Use Case Release a plugin Tagging Revisions!
    • Add a tag $ hg tag -r 8 v0.1 See all tags $ hg tags Update to a tagged revision $ hg update v0.1 Tagging Revisions!
    • Tags" Tagging Revisions!
    • 1.  Mercurial vs. Subversion 2.  Basic concepts 3.  Use cases Overview!
    • Try BitBucket! bitbucket.org"
    • Links! •  http://mercurial.selenic.com" •  http://stevelosh.com/blog/2009/08/a-guide-to- branching-in-mercurial" •  http://hgbook.red-bean.com/"
    • Thank you!!