Presentation is loading. Please wait.

Presentation is loading. Please wait.

Juan Carlos Flores 10/20/2011. Outline Introduction Centralized Revision Control Systems Subversion Overview Distributed Revision Control Systems Network.

Similar presentations


Presentation on theme: "Juan Carlos Flores 10/20/2011. Outline Introduction Centralized Revision Control Systems Subversion Overview Distributed Revision Control Systems Network."— Presentation transcript:

1 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 Linus Torvals 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]http://en.wikipedia.org/wiki/Distributed_revision_control Revision Control. http://en.wikipedia.org/wiki/Revision_control [Accessed Sep 25]http://en.wikipedia.org/wiki/Revision_control Intro to Distributed Version Control. (Illustrated)http://betterexplained.com/articles/intro-to-distributed-version-control- illustrated/ [Accessed Oct 9]http://betterexplained.com/articles/intro-to-distributed-version-control- illustrated/ Distributedversus centralized version control systems. http://rg03.wordpress.com/2007/06/10/distributed-versus-centralized-version-control- systems/ [Accessed Oct. 10] http://rg03.wordpress.com/2007/06/10/distributed-versus-centralized-version-control- systems/ 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] http://www.infoq.com/articles/dvcs-guide Swicegood, T., “Pragmatic version control” 2009-4-20, 2009 Mercurial. http://en.wikipedia.org/wiki/Mercurial [Accessed Oct. 15]http://en.wikipedia.org/wiki/Mercurial 7 Version Control Systems Reviewed. http://www.smashingmagazine.com/2008/09/18/the-top-7-open-source-version- control-systems/ [Accessed Oct. 16] http://www.smashingmagazine.com/2008/09/18/the-top-7-open-source-version- control-systems/ O’Sullivan, B., “Mercurial- The definitive guide” 2009 Git. http://git-scm.com/ [Accessed Oct. Sep 29]http://git-scm.com/ Apache Subversion. http://en.wikipedia.org/wiki/Apache_Subversion [Accessed Oct. 14]http://en.wikipedia.org/wiki/Apache_Subversion Collins, B., Fitzpatrick, B., Pilato, C., “Version Control with Subversion”, 2008

14 Backup Slides

15


Download ppt "Juan Carlos Flores 10/20/2011. Outline Introduction Centralized Revision Control Systems Subversion Overview Distributed Revision Control Systems Network."

Similar presentations


Ads by Google