SlideShare a Scribd company logo
Version Control
System


                   Presented By
                  E.SAIKUMAR
Development Scenario #1
You’re working on the 2.0 version of “your great app.”
But 2.0 doesn’t quite compile yet… and customer finds a
critical bug in 1.0, which must be fixed ASAP.
If you're smart, you have a copy of your 1.0 source.You
make the change and release, but how to you merge your
changes into your 2.0 code?
If you're not so smart, you have NO source code saved.
You have no way to track down the bug, and you loose
face until 2.0 is ready.
Development Scenario #2
Your working on a large scale development project. But
you believe one of your team members has added
malicious code to the project. How do you monitor what
they’ve changed in your 10,000 line, or 100,000 line
project?


i.e. How do you add accountability to a text file?
Version control
Version control manages change




The only constant is change (Heraclitus)
Why version control:
• They allow teams to collaborate
• They manage change and allow for
  inspection
• They track ownership
• They track evolution of changes
• They allow for branching
• They allow for continuous integration
Version Control: The Ancients
1972 – Source Code Control System (SCCS)
Born out of Bell Labs, based on interleaved
deltas No open source implementations as
far as I know
1982 – Revision Control System (RCS)
Released as an alternative to SCCS Operates
on single files Open source implementation
hosted at GNU
Version control : The centralized

• One centralized server with the revision
  information
• Clients checkout a working copy locally
• Most operations happen on the server
• Linear revision history
Version Control: The Centralized
• 1990 – Concurrent Versions System (CVS)
   Initially released as some scripts on top of
  RCS Made branching possible for most
  people Revisions by commits are per file ,
  No atomic commit,Not really maintained
  anymore...
• 2000 – Subversion (SVN)
  Released as an improvement to CVS
  Atomic commits via transactions Open
  source implementation hosted at Apache
Workspaces & Repository

    Your Workspace
Cover.rtf     (ver 1.2)
Chapter 1.txt (ver 1.32)                  Repository
Chapter 2.txt (ver 1.20)           Cover.rtf      (ver 1.2)
Chapter 3.txt (ver 1.14)           Chapter 1.txt (ver 1.32)
                                   Chapter 2.txt (ver 1.20)
                                   Chapter 3.txt (ver 1.15)




Workspace              Workspace                Workspace
The Repository
• The repository holds information including
  dates, labels, branches, versions, etc.
• The repository holds just the changes
  between versions, saving space.
• Also referred to as the a “depot” or “root”
• Often held on a central server
Checkout & Commit
    Checkout & Modify                            Repository
                                          Cover.rtf      (ver 1.2)
                                          Chapter 1.txt (ver 1.32)
                                          Chapter 2.txt (ver 1.20)
                                          Chapter 3.txt (ver 1.14)

                Workspace
Cover.rtf        (ver 1.2 - Modified)
Chapter 1.txt    (ver 1.32)
Chapter 2.txt    (ver 1.20 - Modified)
Chapter 3.txt    (ver 1.14)                     Repository
Chapter 4.txt    (ver 1.1 - New)         Cover.rtf      (ver 1.3)
                                         Chapter 1.txt (ver 1.32)
                                         Chapter 2.txt (ver 1.21)
                     Commit              Chapter 3.txt (ver 1.14)
                                         Chapter 4.txt (ver 1.1)
Checkout
• With checkout commands, one can summon
  files or sets of files from the repository
  based on date, tag, branch, or any of a
  number of other criteria.
Update
          Workspace
   Cover.rtf     (ver 1.2)
   Chapter 1.txt (ver 1.35)
   Chapter 2.txt (ver 1.21)
   Chapter 3.txt (ver 1.14)                    Repository
                                        Cover.rtf      (ver 1.4)
                                        Chapter 1.txt (ver 1.35)
          Update                        Chapter 2.txt (ver 1.22)
                                        Chapter 3.txt (ver 1.18)
                                        Chapter 4.txt (ver 1.3)
            Workspace
Cover.rtf     (ver 1.4 - Updated)
Chapter 1.txt (ver 1.35)
Chapter 2.txt (ver 1.21 - Conflict)
Chapter 3.txt (ver 1.18)
Chapter 4.txt (ver 1.3 - New)
Update
• Update commands will automatically bring your
  workspace up-to-date with the latest (or however
  you specify) files from the repository.
• Update automatically merges non-exclusive
  changes between files and initiates conflict
  resolution if necessary.
• Updates involving conflicts solicit information
  from the user how they wish to have a conflict
  resolve.
Version Control: The Distributed
• Every client has a copy of the full
  repository locally
• All repository operations are local (except
  sharing)
• Intelligent network operations when sharing
  content
• A very non linear revision history
• Large online communities to share changes
Version Control: The Distributed
• 2001 – GNU arch First open source DVCS
   Deprecated; not maintained anymore
• 2005 – Git Created as the SCM for the
  Linux kernel by Linus
• 2005 – Mercurial (Hg) Cross-platform
  DVCS
• 2007 – Bazaar (BZR) Sponsored by
  Canonical
Branches everywhere
• Creating and destroying branches are simple
  operations so it's easy to experimen with new
  ideas
• Very easy to isolate changes
Merging
• DVCS are all about merging
• Merges are just the weaving together of two (or
  more) local branches into one
• However, unlike CVCS, you don't have to
  specify anything about where you're merging
  from and to; the trees automatically know what
  their split point was in the past, and can work it
  out from there.
Collaboration:
• Developers can easily collaborate directly
  without needing a central authority or dealing
  with server administration costs
Disconnected operations rule!
• Developers can still be productive and not
  worry about a central server going down...
  remember the days of complaining that CVS
  was down and you couldn't work?
File Annotation
• Allows you to see who
  changed what when,
  line by line.
• Useful for tracking
  bugs.
• Can be used in
  combination with diff
  and history for even
  more information.
Conclusion
• The future of version control is distributed!
• Lessons Learned at Eclipse moving to a DVCS
• Version controller enables a nice code review
  workflow
??
          .
          .
Want to Know more..!

More Related Content

PPT
network filesystem briefs
PPT
Nf Sp4
PDF
Nfs protocol sequence_diagram
PPTX
Linux System Administration - NFS Server
PDF
Red Hat Enterprise Linux and NFS by syedmshaaf
PPTX
Linux process management
PPT
Subversion on .Unix
PDF
The NFS Version 4 Protocol
network filesystem briefs
Nf Sp4
Nfs protocol sequence_diagram
Linux System Administration - NFS Server
Red Hat Enterprise Linux and NFS by syedmshaaf
Linux process management
Subversion on .Unix
The NFS Version 4 Protocol

What's hot (19)

PDF
Implementation of FIFO in Linux
PPTX
Pipes in Windows and Linux.
PDF
AFS case study
PDF
L06 a versioning_system_overview
PDF
OpenZFS Channel programs
PPTX
Linux network file system (nfs)
PPTX
Linux week 2
PPTX
Daemons
PDF
OpenZFS at LinuxCon
PDF
OpenZFS - AsiaBSDcon
PDF
RxNetty vs Tomcat Performance Results
PDF
The Linux Kernel Implementation of Pipes and FIFOs
ODP
Introduction To SVN
ODP
Introduction To SVN
PPTX
SUN Network File system - Design, Implementation and Experience
PPTX
Linux commands
PPT
Linux13 concurrent versions system
ODP
Linux commands
PPTX
Panasas pNFS Status - Brent Welch
Implementation of FIFO in Linux
Pipes in Windows and Linux.
AFS case study
L06 a versioning_system_overview
OpenZFS Channel programs
Linux network file system (nfs)
Linux week 2
Daemons
OpenZFS at LinuxCon
OpenZFS - AsiaBSDcon
RxNetty vs Tomcat Performance Results
The Linux Kernel Implementation of Pipes and FIFOs
Introduction To SVN
Introduction To SVN
SUN Network File system - Design, Implementation and Experience
Linux commands
Linux13 concurrent versions system
Linux commands
Panasas pNFS Status - Brent Welch
Ad

Similar to Cvs and version control (20)

PPTX
SVN Information
PPT
SVN Tool Information : Best Practices
PDF
Svn workflow
PPTX
Slide set 7 (Source Code Management History Overview) - Copy.pptx
PPT
PPT
Subversion on .Unix
PDF
Introduction to Version Control
PPTX
Mercurial presentation
PDF
How to use CVS applied to SOLab
PPTX
Subversion
PDF
Version control with GIT
PDF
IRJET-Evolution of Version Control Systems and a Study on Tortoisesvn
ODP
Linux26 New Features
PPTX
Subversion
PDF
Lab6 rtos
PPT
Introduction to Version Control and Configuration Management
PDF
LCA14: LCA14-111: Upstreaming 101
PDF
Git presentation
PPTX
Subversion last minute survival crash course
PPT
Subversion
SVN Information
SVN Tool Information : Best Practices
Svn workflow
Slide set 7 (Source Code Management History Overview) - Copy.pptx
Subversion on .Unix
Introduction to Version Control
Mercurial presentation
How to use CVS applied to SOLab
Subversion
Version control with GIT
IRJET-Evolution of Version Control Systems and a Study on Tortoisesvn
Linux26 New Features
Subversion
Lab6 rtos
Introduction to Version Control and Configuration Management
LCA14: LCA14-111: Upstreaming 101
Git presentation
Subversion last minute survival crash course
Subversion
Ad

Recently uploaded (20)

PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PDF
Spectral efficient network and resource selection model in 5G networks
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PPTX
Big Data Technologies - Introduction.pptx
PPTX
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PDF
Review of recent advances in non-invasive hemoglobin estimation
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PPTX
Understanding_Digital_Forensics_Presentation.pptx
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PDF
MIND Revenue Release Quarter 2 2025 Press Release
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PDF
Network Security Unit 5.pdf for BCA BBA.
PDF
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PDF
Empathic Computing: Creating Shared Understanding
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PDF
Chapter 3 Spatial Domain Image Processing.pdf
Digital-Transformation-Roadmap-for-Companies.pptx
Spectral efficient network and resource selection model in 5G networks
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
Big Data Technologies - Introduction.pptx
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
20250228 LYD VKU AI Blended-Learning.pptx
Review of recent advances in non-invasive hemoglobin estimation
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
Understanding_Digital_Forensics_Presentation.pptx
Agricultural_Statistics_at_a_Glance_2022_0.pdf
MIND Revenue Release Quarter 2 2025 Press Release
Diabetes mellitus diagnosis method based random forest with bat algorithm
Network Security Unit 5.pdf for BCA BBA.
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
Empathic Computing: Creating Shared Understanding
Reach Out and Touch Someone: Haptics and Empathic Computing
Chapter 3 Spatial Domain Image Processing.pdf

Cvs and version control

  • 1. Version Control System Presented By E.SAIKUMAR
  • 2. Development Scenario #1 You’re working on the 2.0 version of “your great app.” But 2.0 doesn’t quite compile yet… and customer finds a critical bug in 1.0, which must be fixed ASAP. If you're smart, you have a copy of your 1.0 source.You make the change and release, but how to you merge your changes into your 2.0 code? If you're not so smart, you have NO source code saved. You have no way to track down the bug, and you loose face until 2.0 is ready.
  • 3. Development Scenario #2 Your working on a large scale development project. But you believe one of your team members has added malicious code to the project. How do you monitor what they’ve changed in your 10,000 line, or 100,000 line project? i.e. How do you add accountability to a text file?
  • 4. Version control Version control manages change The only constant is change (Heraclitus)
  • 5. Why version control: • They allow teams to collaborate • They manage change and allow for inspection • They track ownership • They track evolution of changes • They allow for branching • They allow for continuous integration
  • 6. Version Control: The Ancients 1972 – Source Code Control System (SCCS) Born out of Bell Labs, based on interleaved deltas No open source implementations as far as I know 1982 – Revision Control System (RCS) Released as an alternative to SCCS Operates on single files Open source implementation hosted at GNU
  • 7. Version control : The centralized • One centralized server with the revision information • Clients checkout a working copy locally • Most operations happen on the server • Linear revision history
  • 8. Version Control: The Centralized • 1990 – Concurrent Versions System (CVS) Initially released as some scripts on top of RCS Made branching possible for most people Revisions by commits are per file , No atomic commit,Not really maintained anymore... • 2000 – Subversion (SVN) Released as an improvement to CVS Atomic commits via transactions Open source implementation hosted at Apache
  • 9. Workspaces & Repository Your Workspace Cover.rtf (ver 1.2) Chapter 1.txt (ver 1.32) Repository Chapter 2.txt (ver 1.20) Cover.rtf (ver 1.2) Chapter 3.txt (ver 1.14) Chapter 1.txt (ver 1.32) Chapter 2.txt (ver 1.20) Chapter 3.txt (ver 1.15) Workspace Workspace Workspace
  • 10. The Repository • The repository holds information including dates, labels, branches, versions, etc. • The repository holds just the changes between versions, saving space. • Also referred to as the a “depot” or “root” • Often held on a central server
  • 11. Checkout & Commit Checkout & Modify Repository Cover.rtf (ver 1.2) Chapter 1.txt (ver 1.32) Chapter 2.txt (ver 1.20) Chapter 3.txt (ver 1.14) Workspace Cover.rtf (ver 1.2 - Modified) Chapter 1.txt (ver 1.32) Chapter 2.txt (ver 1.20 - Modified) Chapter 3.txt (ver 1.14) Repository Chapter 4.txt (ver 1.1 - New) Cover.rtf (ver 1.3) Chapter 1.txt (ver 1.32) Chapter 2.txt (ver 1.21) Commit Chapter 3.txt (ver 1.14) Chapter 4.txt (ver 1.1)
  • 12. Checkout • With checkout commands, one can summon files or sets of files from the repository based on date, tag, branch, or any of a number of other criteria.
  • 13. Update Workspace Cover.rtf (ver 1.2) Chapter 1.txt (ver 1.35) Chapter 2.txt (ver 1.21) Chapter 3.txt (ver 1.14) Repository Cover.rtf (ver 1.4) Chapter 1.txt (ver 1.35) Update Chapter 2.txt (ver 1.22) Chapter 3.txt (ver 1.18) Chapter 4.txt (ver 1.3) Workspace Cover.rtf (ver 1.4 - Updated) Chapter 1.txt (ver 1.35) Chapter 2.txt (ver 1.21 - Conflict) Chapter 3.txt (ver 1.18) Chapter 4.txt (ver 1.3 - New)
  • 14. Update • Update commands will automatically bring your workspace up-to-date with the latest (or however you specify) files from the repository. • Update automatically merges non-exclusive changes between files and initiates conflict resolution if necessary. • Updates involving conflicts solicit information from the user how they wish to have a conflict resolve.
  • 15. Version Control: The Distributed • Every client has a copy of the full repository locally • All repository operations are local (except sharing) • Intelligent network operations when sharing content • A very non linear revision history • Large online communities to share changes
  • 16. Version Control: The Distributed • 2001 – GNU arch First open source DVCS Deprecated; not maintained anymore • 2005 – Git Created as the SCM for the Linux kernel by Linus • 2005 – Mercurial (Hg) Cross-platform DVCS • 2007 – Bazaar (BZR) Sponsored by Canonical
  • 17. Branches everywhere • Creating and destroying branches are simple operations so it's easy to experimen with new ideas • Very easy to isolate changes
  • 18. Merging • DVCS are all about merging • Merges are just the weaving together of two (or more) local branches into one • However, unlike CVCS, you don't have to specify anything about where you're merging from and to; the trees automatically know what their split point was in the past, and can work it out from there.
  • 19. Collaboration: • Developers can easily collaborate directly without needing a central authority or dealing with server administration costs
  • 20. Disconnected operations rule! • Developers can still be productive and not worry about a central server going down... remember the days of complaining that CVS was down and you couldn't work?
  • 21. File Annotation • Allows you to see who changed what when, line by line. • Useful for tracking bugs. • Can be used in combination with diff and history for even more information.
  • 22. Conclusion • The future of version control is distributed! • Lessons Learned at Eclipse moving to a DVCS • Version controller enables a nice code review workflow
  • 23. ?? . . Want to Know more..!