Open In App

Git – SubGit

Last Updated : 27 Jul, 2022
Like Article

Git is a distributed version control system. A version control system is a system that tracks the history of changes as people and teams collaborate on projects together. As the project progresses, new features get added to it. So, a version control system maintains all the different versions of your project for you, and you can roll back to any version you want, without causing any trouble to you for maintaining different versions by giving names to it like ProjectV1, ProjectV2, etc. Developers can review project history to find out:

  • Which changes were made?
  • Who made the changes?
  • When were the changes made?
  • Why were changes needed?

Types of Version Control System

1. Centralized Version Control System: Centralized Version Control is a version control system using the server/client model and the server contains all the history of the source code.

Centralized Version Control System

2. Distributed Version Control System: Distributed Version Control is a version control where each client can have the same copy of source code as the server ensuring both server and client maintain the history of source code.

Centralized Version Control System

Distributed Version Control System

SubGit is a tool for migrating Subversion(SVN) to Git. Below is a Difference table between Subversion and Git to understand Subversion in detail.

Difference Point

Subversion (SVN)


Interpretation Subversion is a system of revision control and centralized versioning Git is a system of distributed version control used for the management of source code
Learning SVN is much easier to learn as compared to git Git is more difficult to learn
Network Access Must require Not Mandatory
Copy of Code In SVN there is a central repository that has a working copy that also makes changes and is committed in the central repository. In git, every user has their own copy of code on their local like their own branch.
Used By 10% of professional developers 90% of professional developers

How Does SubGit Work?

SubGit is written in Java and works on the server side. It requires direct access to both Subversion and Git repositories over the local file system. SubGit creates a writable Git mirror of a Subversion repository. A git mirror is a repository that acts like source code. Git mirror is a functionally identical copy of source code that is interchangeable with the original. SubGit creates a bi-directional mirror that can be used for pushing to git as well as committing to subversion. 

Conclusion: In conclusion, SubGit is a tool that allows one to build bidirectional read/write meters of subversion in git repositories. SubGit also takes care of synchronization between Git and Subversion.

Similar Reads

Difference Between Git remote prune, Git prune and Git fetch --prune
One of the great things about Git is that it's *very careful about deleting data*. This makes it pretty hard to lose commits or other valuable data in Git! A small downside of this is that you might sometimes see stale data that you actually don't need anymore. One of the best examples of this is references to remote branches that have already been
2 min read
Difference between “git add -A” and “git add”
Git is a free and open-source distributed version control system designed to handle everything from small to very large projects with speed and efficiency. It is basically, software for tracking changes in any set of files, usually used for coordinating work among programmers collaboratively developing source code during software development. Featu
3 min read
Git - Difference Between Git Revert, Checkout and Reset
While Working with Git in certain situations we want to undo changes in the working area or index area, sometimes remove commits locally or remotely and we need to reverse those changes. There are 3 different ways in which we can undo the changes in our repository, these are git reset, git checkout, and git revert. git checkout and git reset in fac
7 min read
Git - git-show Command Line Utility
Git is a free and open-source distributed version control system designed to handle everything from small to very large projects with speed and efficiency. Git relies on the basis of distributed development of software where more than one developer may have access to the source code of a specific application and can modify changes to it that may be
3 min read
Git - git-prune
Git prune is a command that deletes all the files that are not reachable from the current branch. The prune command is useful when you have a lot of files in your working directory that you don’t want to keep. The primary use of git prune is to clean up your working directory after you have finished working on a project. What actually git prune doe
4 min read
Git LFS: Managing Large Files in Git Repositories
Git, undoubtedly one of the most popular version control systems, is widely used for managing source code in software development projects. However, one of its limitations is its handling of large files. Traditional Git repositories struggle to efficiently manage large files, leading to bloated repositories and slow performance. This is where Git L
4 min read
Git Subtree vs. Git Submodule
Git Subtree and Git Submodule are both mechanisms in Git that allow you to incorporate external repositories into your own repository. They provide a way to manage dependencies and include code from other projects while keeping your repository organized and maintainable. Git Subtree: Git Subtree allows you to insert a separate repository as a subdi
4 min read
Difference Between Git Fetch and Git Pull
Understanding the difference between git fetch and git pull is important for effective version control in Git. These commands are important for managing your repository and collaborating with team members. In this article, Let us look at Git Fetch and Git Pull separately with the help of an example. What is Git Fetch?The Git Fetch command is used t
4 min read
Difference Between Git Push Origin and Git Push Origin Master
Understanding the difference between git push origin and git push origin master is important for efficient version control in Git. These commands are used to upload changes from your local repository to a remote repository, but they function differently. This article will explain these differences, how each command works, and when to use them. What
3 min read
How to Set Up Git Using Git Config?
Git is a powerful version control system that helps developers manage and track changes in their code. Setting up Git correctly is important for maintaining an organized and efficient workflow. In this article, we'll walk you through the process of setting up Git using the git config command. PrerequisitesBefore we dive into the setup process, make
3 min read
Article Tags :