0% found this document useful (0 votes)
31 views

2 Git Version Control System

Git is a distributed version control system that allows developers to track changes to files, work collaboratively, and maintain complete change histories. It provides key benefits like simultaneous work, branching and merging, complete change tracking, and traceability of changes. Version control systems can be either centralized, with a single server storing files, or distributed, where each user has their own local repository.

Uploaded by

Kakeru Senpai
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
31 views

2 Git Version Control System

Git is a distributed version control system that allows developers to track changes to files, work collaboratively, and maintain complete change histories. It provides key benefits like simultaneous work, branching and merging, complete change tracking, and traceability of changes. Version control systems can be either centralized, with a single server storing files, or distributed, where each user has their own local repository.

Uploaded by

Kakeru Senpai
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 17

GIT VERSION CONTROL

SYSTEM
Software Engineering 2
GIT VERSION CONTROL SYSTEM

• A version control system is a software that tracks changes


to a file or set of files over time so that you can recall
specific versions later. It also allows you to work together
with other programmers.
• The version control system is a collection of software tools
that help a team to manage changes in a source code. It
uses a special kind of database to keep track of every
modification to the code.
• Developers can compare earlier versions of the code with
an older version to fix the mistakes.
BENEFITS OF THE VERSION CONTROL
SYSTEM
• The Version Control System is very helpful and beneficial
in software development; developing software without
using version control is unsafe. It provides backups for
uncertainty. Version control systems offer a speedy
interface to developers. It also allows software teams to
preserve efficiency and agility according to the team scales
to include more developers.
BENEFITS OF THE VERSION CONTROL
SYSTEM
Some key benefits of having a version
control system are as follows.
• Complete change history of the file
• Simultaneously working
• Branching and merging
• Traceability
BENEFITS OF THE VERSION
CONTROL SYSTEM
1. Complete Change History of the File:
• A version control system keeps track of all changes
made to a file over time, creating a history log.
• Example: Imagine you are writing a story. With
version control, you can see every edit you or others
made, like who added a new paragraph or corrected a
spelling mistake, preserving the entire story's
evolution.
BENEFITS OF THE VERSION
CONTROL SYSTEM
2. Simultaneously Working:
• Multiple people can work on the same project or file at the
same time without interfering with each other's changes.
• Example: Picture a group project where each team
member can edit different parts of a document
simultaneously, like one person working on the
introduction while another focuses on the conclusion.
BENEFITS OF THE VERSION
CONTROL SYSTEM
3. Branching and Merging:
• Version control allows for creating separate "branches" or
copies of the project to work on specific features or fixes
independently, which can later be combined (merged).
• Example: Think of a tree with branches. Each branch
represents a different aspect of a project, like one branch
for adding a new feature and another for fixing a bug. Once
both are ready, they can be merged back together.
BENEFITS OF THE VERSION
CONTROL SYSTEM
4. Traceability:
• It provides a clear trail or "trace" of who made what
changes, when, and why.
• Example: In a cooking recipe, if someone modifies the
ingredients or instructions, version control helps trace who
made the change, when it happened, and the reason behind
it, ensuring accountability and understanding the recipe's
evolution.
TYPES OF VERSION CONTROL
SYSTEM
1. Localized version Control System
2. Centralized version control systems
3. Distributed version control systems
TYPES OF VERSION CONTROL
SYSTEM
1. Localized version Control System
• The localized version control method is a common approach
because of its simplicity. But this approach leads to a higher
chance of error. In this approach, you may forget which
directory you're in and accidentally write to the wrong file or
copy over files you don't want to.

• To deal with this issue, programmers developed local VCSs


that had a simple database. Such databases kept all the changes
to files under revision control. A local version control system
keeps local copies of the files.

• The major drawback of Local VCS is that it has a single point


of failure.
TYPES OF VERSION CONTROL
SYSTEM
2. Centralized Version Control
System
• The developers needed to collaborate with
other developers on other systems. The
localized version control system failed in this
case. To deal with this problem, Centralized
Version Control Systems were developed.
• These systems have a single server that
contains the versioned files, and some clients
to check out files from a central place.
TYPES OF VERSION CONTROL
SYSTEM
2. Centralized Version Control System
Centralized version control systems have many benefits, especially over local
VCSs.
• Everyone on the system has information about the work what others are doing on
the project.
• Administrators have control over other developers.
• It is easier to deal with a centralized version control system than a localized
version control system.
• A local version control system facilitates with a server software component which
stores and manages the different versions of the files.
It also has the same drawback as in local version control system that it also has a
single point of failure.
TYPES OF VERSION CONTROL SYSTEM
3. Distributed Version Control System
• Centralized Version Control System uses a central server to
store all the database and team collaboration. But due to
single point failure, which means the failure of the central
server, developers do not prefer it. Next, the Distributed
Version Control System is developed.
• In a Distributed Version Control System (such as Git,
Mercurial, Bazaar or Darcs), the user has a local copy of a
repository. So, the clients don't just check out the latest
snapshot of the files even they can fully mirror the
repository. The local repository contains all the files and
metadata present in the main repository.
TYPES OF VERSION CONTROL SYSTEM
3. Distributed Version Control System
• DVCS allows automatic management branching and merging. It speeds up of
most operations except pushing and pulling. DVCS enhances the ability to
work offline and does not rely on a single location for backups. If any server
stops and other systems were collaborating via it, then any of the client
repositories could be restored by that server. Every checkout is a full backup of
all the data.
• These systems do not necessarily depend on a central server to store all the
versions of a project file.
DIFFERENCE BETWEEN CENTRALIZED VERSION CONTROL
SYSTEM AND DISTRIBUTED VERSION CONTROL SYSTEM

• Centralized Version Control Systems are systems that use client/server


architecture. In a centralized Version Control System, one or more client
systems are directly connected to a central server. Contrarily the Distributed
Version Control Systems are systems that use peer-to-peer architecture.
• There are many benefits and drawbacks of using both the version control
systems. Let's have a look at some significant differences between Centralized
and Distributed version control system.
DIFFERENCE BETWEEN CENTRALIZED VERSION CONTROL
SYSTEM AND DISTRIBUTED VERSION CONTROL SYSTEM
Centralized Version Control System Distributed Version Control System

In CVCS, The repository is placed at one place In DVCS, Every user has a local copy of the
and delivers information to many clients. repository in place of the central repository on the
server-side.

It is based on the client-server approach. It is based on peer to peer approach.

It is the most straightforward system based on It is flexible and has emerged with the concept
the concept of the central repository. that everyone has their repository.

In CVCS, the server provides the latest code to In DVCS, every user can check out the snapshot
all the clients across the globe. of the code, and they can fully mirror the central
repository.
DIFFERENCE BETWEEN CENTRALIZED VERSION CONTROL
SYSTEM AND DISTRIBUTED VERSION CONTROL SYSTEM
Centralized Version Control System Distributed Version Control System

CVCS is easy to administrate and has DVCS is fast comparing to CVCS as you don't
additional control over users and access by its have to interact with the central server for every
server from one place. command.

The popular tools of CVCS The popular tools of DVCS


are SVN (Subversion) and CVS. are Git and Mercurial.

CVCS is easy to understand for beginners. DVCS has some complex process for beginners.

If the server fails, No system can access data if any server fails and other systems were
from another system. collaborating via it, that server can restore any of
the client repositories

You might also like