Mercurial: Modern Source Control Management

  • 3,222 views
Uploaded on

Discussion on Mercurial and migration from CVS.

Discussion on Mercurial and migration from CVS.

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

Views

Total Views
3,222
On Slideshare
0
From Embeds
0
Number of Embeds
2

Actions

Shares
Downloads
73
Comments
0
Likes
6

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. Mercurial Modern Source Control Management John Paulett April 5, 2010
  • 2. Overview CVS Issues Modern Alternatives Distributed Version Control Mercurial Next Steps
  • 3. CVS Shortcomings Network connectivity required Lack of support for renaming/moving Lack of atomic commits Single point of failure Expensive branch operations Day-long merges 2010.04.05 3
  • 4. CVS Replacements Subversion (2000) - svn ● “CVS done right” Git (2005) – git ● Created by Linus Torvalds for kernel development Mercurial (2005) – hg ● Created after Linux-Bitkeeper incident Bazaar, darcs, monotone ... 2010.04.05 4
  • 5. Distributed Version Control (DVCS) Complete, local repository Branching & merging are trivial Central server for sharing repositories 2010.04.05 5
  • 6. Mercurial mercurial.selenic.com Changesets, not files Mozilla, OpenJDK, OpenSolaris, Python, Zen, OpenOffice, NetBeans 2010.04.05 6
  • 7. Create a new repository $ hg init demo $ cd demo $ ls -a . .. .hg 2010.04.05 7
  • 8. Add a file $ echo "Hello world" > README $ hg add README $ hg status A README 2010.04.05 8
  • 9. Commit the changeset $ hg commit -m "Adding basic README" $ hg log 0[tip] 9b1b9c995571 2010-01-13 12:37 -0600 jpaulett Adding basic README 2010.04.05 9
  • 10. Push to remote repository $ hg push ssh://hg@bitbucket.org/nrg/demo/ pushing to ssh://hg@bitbucket.org/nrg/demo/ searching for changes remote: adding changesets remote: adding manifests remote: adding file changes remote: added 1 changesets with 1 changes to 1 files ... 2010.04.05 10
  • 11. Clone Existing Repository $ hg clone http://bitbucket.org/nrg/demo/ destination directory: demo requesting all changes adding changesets adding manifests adding file changes added 1 changesets with 1 changes to 1 files updating to branch default 1 files updated, 0 files merged, 0 files removed, 0 files unresolved 2010.04.05 11
  • 12. Get Updates $ hg pull pulling from https://johnpaulett@bitbucket.org/nrg/demo/ searching for changes adding changesets adding manifests adding file changes added 1 changesets with 1 changes to 1 files (run 'hg update' to get a working copy) $ hg update 1 files updated, 0 files merged, 0 files removed, 0 files unresolved 2010.04.05 12
  • 13. Workflow Multiple workflows are possible “Integration Manager” blessed developer developer repository public public integration developer developer manager private private 2010.04.05 http://whygitisbetterthanx.com/#any-workflow 13
  • 14. Workflow mainline john cnda 1.4.1 changeset repository tag 1.4.2 2010.04.05 14
  • 15. Hosting bitbucket.org Self-hosted via Apache & SSH ● hg.xnat.org Google Code / Sourceforge 2010.04.05 15
  • 16. Tools $ hg MercurialEclipse TortoiseHg CuteHg 2010.04.05 16
  • 17. Resources mercurial.selenic.com hgbook.red-bean.com hginit.com 2010.04.05 17
  • 18. Resources http://nrg.wikispaces.com/Mercurial http://betterexplained.com/articles/intro-to-distributed- version-control-illustrated/ http://code.google.com/p/support/wiki/DVCSAnalysis 2010.04.05 18
  • 19. hg Advantages Easy learning curve coming from CVS/SVN Allows 3rd parties to more easily contribute No more day long merges 2010.04.05 19
  • 20. Next Steps Try out Mercurial: ● bitbucket.org/nrg 2010.04.05 20
  • 21. 2010.04.05 21