A summary of Differences:
1. Git branches carry entire history.2. Git was designed to be fully distributed from start, allowing each developer to have full control.
3. Git’s repositories are much smaller than SVN’s.
4. Git repository clones acts as full repository backup.
5. Git is much faster than SubVersion
Git’s major features Over Subversion(SVN)
Distributed Nature:
In Git, every has complete copy of repository data stored locally, there by making access to file history is fast, as well as allowing full functionality when disconnected to network. If you have 10 users, then you will have 10 backups of repositories . If any repository is lost then only the changes which were unique to that repository is lost.
In centralized SVN, Only have central repository has a complete history. This means that user must communicate over a network with central repository to obtain the history about the file. backup are maintained independently of SVN. If central repository is lost due to some system failure it must be restored from the backup and all changes since that last backup are likely to be lost.
Performance:
Git is extremely fast. Since all operations(except push and Fetch or pull) are local there is no network latency involeved to:
- perform difference.
- view file history.
- commit changes.
- Merge branches.
- Switch branches.
Git repository and working directory sizes are extremely small when compared to SVN.
One of the reasons for the smaller repo size is that an SVN working directory always contains two copies of each file: one for the user to actually work with and another hidden in .svn/ to aid operations such as status, diff and commit. In contrast a Git working directory requires only one small index file that stores about 100 bytes of data per tracked file. On projects with a large number of files this can be a substantial difference in the disk space required per working copy.
Subversion’s Major Features Over Git
Subversion has some notable features that Git currently doesn’t have or will never have.User Interfaces Maturity:
Currently Subversion has a wider range of user interface tools than Git. For example there are SVN plugins available for most popular IDEs. There is a Windows Explorer shell extension. There are a number of native Windows and Mac OS X GUI tools available in ready-to-install packages
Git’s primary user interface is through the command line. There are two graphical interfaces: git-gui (distributed with Git) and qgit, which is making great strides towards providing another feature-complete graphical interface.
Single Repository:
Since Subversion only supports a single repository there is little doubt about where something is stored. Once a user knows the repository URL they can reasonably assume that all materials and all branches related to that project are always available at that location. Backup to tape/CD/DVD is also simple as there is exactly one location that needs to be backed up regularly.
Since Git is distributed by nature not everything related to a project may be stored in the same location. Therefore there may be some degree of confusion about where to obtain a particular branch, unless repository location is always explicitly specified. There may also be some confusion about which repositories are backed up to tape/CD/DVD regularly, and which aren’t.
Access Controls:
Since Subversion has a single central repository it is possible to specify read and write access controls in a single location and have them be enforced across the entire project.
Comments
Post a Comment