Version control, also known as source control, is the practice of tracking and managing changes to software code. Version control systems are software tools that help software teams manage changes to source code over time.
2. HELLO!
We are Group 20
1). Group Leader
Bhavya Chawla (bchawla@hawk.iit.edu) (A20516957)
2). 2nd Group Member
Haren Amal (hamal@hawk.iit.edu) (A20513547)
3). 3rd Group Member
Sannihitha Reddy Vuchuru (svuchuru@hawk.iit.edu) (A20512520)
2
2
4. What is it?
▪ It is a method for centrally storing files,
which can be used to store source codes and
complex documentations
▪ It keeps a record of changes,
helping in a way to manage, organize and
coordinate the development of the projects
4
4
5. Who What When
It helps you to answer, Who did What and When in the
system,
It helps in covering yourself when things inevitably go
wrong
5
5
6. Version Control Systems:
(VCS) have seen great improvements
over the past few decades and some
are better than others.
VCS are sometimes known as SCM
(Source Code Management) tools
or RCS (Revision Control System).
What is it?
Source Code Management:
(SCM) is used to track modifications
to a source code repository. SCM
tracks a running history of changes
to a code base and helps resolve
conflicts when merging updates
from multiple contributors. SCM is
also synonymous with Version
control.
6
6
7. Summarizing the benefits:
A complete long-term change
history of every file
This history also include the
author, date and written notes
on the purpose of each
change. It enables going back
to previous versions to help in
root cause analysis for bugs
and it is crucial when needing
to fix problems in older
versions of software.
Branching and merging.
Creating a "branch" in VCS
tools keeps multiple
streams of work
independent from each
other while also providing
the facility to merge that
work back together
Traceability
When reading the code, trying to
understand what it is doing and
why, enable developers to make
correct and harmonious
changes with the intended
long-term design of the system
also enabling developers to
estimate future work with any
accuracy.
7
7
9. Centralized Version Control
Systems:
Holds a single repository globally
and enables the developers to work
collaboratively.
TYPES:
9
9
Distributed Version Control
Systems:
Contain multiple repositories which
enables developers to have their
own copy.
10. Centralized Version Control System
10
10
▪ One central repository which can be
accessed from anywhere in the world.
▪ Every stage in the history of the file
identified by version or revision number.
▪ The newest revision is often called as
Head.
▪ Examples: CVS, Subversion (SVN),
Perforce.
11. Advantages
▪ Complete visibility.
▪ Works well with huge files.
▪ Ease of use.
Disadvantages
▪ Single point of failure risk.
▪ Requires network connection.
▪ Slow operations.
11
11
Centralized Version Control System
12. Distributed Version Control System
12
12
▪ Newer approach to Version Control
Systems.
▪ Every user has a local repository.
▪ Changes are distributed through pushes and
pulls.
▪ Examples: Git, Mercurial, Bazaar.
13. Advantages
▪ Reliability.
▪ Flexibility to work offline.
▪ Faster operations.
Disadvantages
▪ Steep learning curve.
▪ Binary files require huge amount
of space, so diffing could be a
problem.
13
13
Distributed Version Control System
16. Tools:
GIT
Considered as the most popular
source code management tools for
the huge number of OSS projects.
A wide purpose of Git is distributed
revision control. Git allows cloning
the entire repository it is possible
to work without internet
connection
Mercurial
One of the most popular VCS tools
available. Decentralized,
fully-distributed architecture.
It has got a very higher and
progressive merging and
branching capabilities compared to
other VCS.
16
CVS
(CVS) was the first popular central
version control system for
collaborative work. CVS is
open-source software for version
control, where uses a client-server
architecture,
SVN
SVN developed as CVS
replacement with some
enhancements, considers the final
step in the evolution of centralized
version control
Bazaar
GNU Bazaar was made by
Canonical, the same team behind
Ubuntu. It is both distributed and
client-server. It can be used by a
single developer working on
multiple branches of local content.
Focuses on the simple and easy
user interface,
18. Server Architecture:
GIT:
▪ Every developer has a local copy of
the full version history of the project.
Changes happen locally.
▪ Every time a large file is changed and
committed, Git repositories grow
exponentially.
18
SVN:
▪ Only the files a developer is working
on are kept on the local machine.
Users check out files and commit
changes back to the server
▪ Only the working tree and the latest
changes are checked out onto local
machines. Checkouts take less time in
SVN
19. Branching and Access:
GIT:
▪ Branches are only references to a
certain commit. They are lightweight
You can create, delete, and change a
branch at any time, without affecting
the commits.
▪ By default, Git assumes that all the
contributors have the same
permissions.
19
SVN:
▪ Branches are created as directories
inside a repository.
When the branch is ready, you commit
back to the trunk.
▪ SVN allows you to specify read and
write access controls per file level and
per directory level.
20. Auditability:
GIT:
▪ Distributed nature allows anyone to
change any part of their local
repository history.
Changes are tracked at a repository
level.
20
SVN:
▪ To make any change to the
repository’s history, you need access
to the central server.
Changes are tracked at the file level
22. Conclusion:
▪ Tracking the changes made to software code is made easier when a version
control system is used.
▪ The elimination of errors and consolidation of everyone's efforts into a single
code repository are both potential benefits of Version control systems.
▪ Managing agile software projects, using version control systems and tools
can be of tremendous assistance overall.
▪ VCS can assist with keeping projects more organized, tracking changes
made to code, reverting to earlier versions if required, sharing code with other
members of the team and code sharing.
22
23. References:
Khleel, Nasraldeen & Nehéz, Károly. (2020). COMPARISON OF VERSION CONTROL SYSTEM TOOLS. Multidiszciplináris Tudományok. 10. 61-69. 10.35925/j.multi.2020.3.7.
Blischak, John & Davenport, Emily & Wilson, Greg. (2016). A Quick Introduction to Version Control with Git and GitHub. PLoS computational biology. 12. e1004668.
10.1371/journal.pcbi.1004668.
Deepa, N. & B, Prabadevi & Lb, Krithika & B.Deepa,. (2020). An analysis on Version Control Systems. 1-9. 10.1109/ic-ETITE47903.2020.39.
Zolkipli, Nazatul Nurlisa & Ngah, Amir & Deraman, Aziz. (2018). Version Control System: A Review. Procedia Computer Science. 135. 408-415. 10.1016/j.procs.2018.08.191.
M. Lass, D. Leibenger and C. Sorge, "Confidentiality and Authenticity for Distributed Version Control Systems - A Mercurial Extension," 2016 IEEE 41st Conference on Local
Computer Networks (LCN), 2016, pp. 1-9, doi: 10.1109/LCN.2016.11.
Brindescu, Caius & Codoban, Mihai & Shmarkatiuk, Sergii & Dig, Danny. (2014). How do centralized and distributed version control systems impact software changes?.
10.1145/2568225.2568322.
AMRUTA SUDHIR VATARE , PROF. PRATIBHA ADKAR "Review Paper On Centralized And Distributed Version Control System" Iconic Research And Engineering Journals, 2(11)
R. Majumdar, R. Jain, S. Barthwal and C. Choudhary, "Source code management using version control system," 2017 6th International Conference on Reliability, Infocom
Technologies and Optimization (Trends and Future Directions) (ICRITO), 2017, pp. 278-281, doi: 10.1109/ICRITO.2017.8342438.
Otte, Stefan. (2009). Version Control Systems.
Git vs SVN: What Is The Difference?
23