Version Control Systems
Version Control Systems
Systems
Presented by: Ankita Sharma
What is a “version control system”?
• Local Version Control Systems: It is one of the simplest forms and has a
database that kept all the changes to files under revision control. RCS is one of
the most common VCS tools. It keeps patch sets (differences between files) in a
special format on disk. By adding up all the patches it can then re-create what
any file looked like at any point in time.
• Centralized Version Control Systems: Centralized version control systems
contain just one repository globally and every user need to commit for
reflecting one’s changes in the repository. It is possible for others to see your
changes by updating.
• Two things are required to make your changes visible to others which are:
• You commit
• They update
Continue…
• Distributed Version Control Systems: Distributed version control
systems contain multiple repositories. Each user has their own
repository and working copy. Just committing your changes will not
give others access to your changes. This is because commit will
reflect those changes in your local repository and you need to push
them in order to make them visible on the central repository.
Similarly, When you update, you do not get others’ changes unless
you have first pulled those changes into your repository.
• To make your changes visible to others, 4 things are required:
• You commit
• You push
• They pull
• They update
Purpose of Version Control:
• Multiple people can work simultaneously on a single project. Everyone
works on and edits their own copy of the files and it is up to them when
they wish to share the changes made by them with the rest of the
team.
• It also enables one person to use multiple computers to work on a
project, so it is valuable even if you are working by yourself.
• It integrates the work that is done simultaneously by different members
of the team. In some rare cases, when conflicting edits are made by two
people to the same line of a file, then human assistance is requested by
the version control system in deciding what should be done.
• Version control provides access to the historical versions of a project.
This is insurance against computer crashes or data loss. If any mistake is
made, you can easily roll back to a previous version. It is also possible to
undo specific edits that too without losing the work done in the
meanwhile. It can be easily known when, why, and by whom any part of
a file was edited.