Git – SubGit
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.
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
SubGit is a tool for migrating Subversion(SVN) to Git. Below is a Difference table between Subversion and Git to understand Subversion in detail.
|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.