1 / 13

Distributed revision control systems

Distributed revision control systems. Juan Carlos Flores 10/20/2011. Outline. Introduction Centralized Revision Control Systems Subversion Overview Distributed Revision Control Systems Network of Trust Git Overview Mercurial Overview Conclusions. Introduction.

winda
Télécharger la présentation

Distributed revision control systems

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Distributed revision control systems Juan Carlos Flores 10/20/2011

  2. Outline • Introduction • Centralized Revision Control Systems • Subversion Overview • Distributed Revision Control Systems • Network of Trust • Git Overview • Mercurial Overview • Conclusions

  3. Introduction Revision control systems (methodologies or tools) • Automates the storing, retrieval, logging, identification as well as merging of revisions.(Keep track of changes in source code files) • Contain: • Current state of code • Date for changes that were made • Text log to explain why changes were made……. • Fall into two categories: Centralized and Distributed

  4. Centralized Revision Control Systems • Developers work against one central repository. • Single place to check in and check out (similar to library) • Most common type of VCS (not for much) • Systems that use this methodology: • Subversion • CVS • Perforce • Disadvantages • No offline commits • Single point of failure • Painful merging • Bad performance • Slow • Projects that have used this type of VCS • Python • Apache • SourceForge • Google Code

  5. CVCS Diagram

  6. Subversion • Created in 2000 by CollabNet • Main goal: to operate much like CVS, but it would fix its bugs and add features missing in CVS. • All collaborators have to work against one central repository. • Advantages • Master version is kept centrally • Easy to learn • Native support for binary files • Cross Platform • Great third-party support

  7. Distributed Revision Control Systems • Take a peer-to-peer approach rather than a client-server approach • Developers maintain their own local branches • Systems that use this methodology: • Git • Mercurial • Bazaar • Key Advantages • Offline Commits • Great for forks • Fast • Easy branching and merging • Better adaptability (scalable) • Network not involved in most situations • Projects that have used this type of VCS • Linux Kernel • Xen • Mozilla • VLC

  8. DVCS Diagram

  9. Network of Trust

  10. Git • Initially created by LinusTorvals to replace BitKeeper • Popular for being used to manage the Linux kernel source tree • It prides itself for being extremely fast and an efficient system • Its core is written in C • Many commands are implemented as shell or Perl scripts • Advantages • Mature • Efficient handling of large projects • Easy to compile • Distributed development • Disadvantages • Poor cross platform support • Difficult to learn (for new users) • Software projects using it • Linux Kernel • Gnome • Ruby on Rails • Perl • Qt

  11. Mercurial (hg) • Fast and simple cross-platform distributed revision control system. • Written in Python (95%) and C (5%) • Main design goals: decentralized, fully distributed development, high performance and scalability, robust handling of binary as well as txt files and advance branching and merging capabilities. • Mainly designed for large projects • Advantages • Cross platform • Command usage similar to common CVCS such as Subversion • Excellent documentation • Great scalability • Easy to customize • Software projects using it • Mozilla • OpenJDK • OpenOffice • Python • Xen

  12. Conclusion • Revision control systems are great to manage software projects helping in the software engineering process • Distributed revision control systems are taking over CVCS because of their advantages. • Great DVCS have been created to help organizations to manage their software projects • Mercurial seems to be more suitable for new users of distributed revision control systems

  13. References • Distributed revision control. http://en.wikipedia.org/wiki/Distributed_revision_control [Accessed Oct. 29] • Revision Control. http://en.wikipedia.org/wiki/Revision_control [Accessed Sep 25] • Intro to Distributed Version Control. (Illustrated)http://betterexplained.com/articles/intro-to-distributed-version-control-illustrated/ [Accessed Oct 9] • Distributedversus centralized version control systems. http://rg03.wordpress.com/2007/06/10/distributed-versus-centralized-version-control-systems/ [Accessed Oct. 10] • Alwis, B., Sillito, J., “Why are software projects moving from centralized to decentralized version control systems”, git-scm, 2009 • Distributed Version Control Systems: A not-So-Quick Guide. http://www.infoq.com/articles/dvcs-guide [Accessed Oct. 10] • Swicegood, T., “Pragmatic version control” 2009-4-20, 2009 • Mercurial. http://en.wikipedia.org/wiki/Mercurial [Accessed Oct. 15] • 7 Version Control Systems Reviewed. http://www.smashingmagazine.com/2008/09/18/the-top-7-open-source-version-control-systems/ [Accessed Oct. 16] • O’Sullivan, B., “Mercurial- The definitive guide” 2009 • Git. http://git-scm.com/ [Accessed Oct. Sep 29] • Apache Subversion. http://en.wikipedia.org/wiki/Apache_Subversion [Accessed Oct. 14] • Collins, B., Fitzpatrick, B., Pilato, C., “Version Control with Subversion”, 2008

More Related