DEV Community

Cover image for Alternatives to Git.
Ebenezer Enietan (Niza)
Ebenezer Enietan (Niza)

Posted on

Alternatives to Git.

Git is a popular version control system that is widely used by software developers to track changes to their code and collaborate with other team members. However, there are several alternative version control systems available that offer similar functionality to Git. Here are a few examples:

Mercurial:

Mercurial is a free, open-source version control system that is similar to Git in many ways. It is known for its simplicity and speed, and is popular among developers who prefer a lightweight tool. The official website for Mercurial is https://www.mercurial-scm.org/. Some basic commands in Mercurial include:

hg init: Initializes a new Mercurial repository.
hg clone: Makes a copy of an existing repository.
hg add: Adds a new file to the repository.
hg commit: Saves changes to the repository.
hg push: Sends changes to a remote repository.
Enter fullscreen mode Exit fullscreen mode

Subversion:

Subversion (also known as SVN) is another popular version control system that is similar to Git. It is known for its reliability and simplicity, and is often used in large organizations. The official website for Subversion is https://subversion.apache.org/. Some basic commands in Subversion include:

svn checkout: Downloads repository from a remote server.
svn add: Adds a new file to the repository.
svn commit: Saves changes to the repository.
svn update: Downloads latest changes from a remote repository.
Enter fullscreen mode Exit fullscreen mode

CVS:

CVS (Concurrent Versions System) is an older version control system that is still used by some developers today. It is known for its simplicity and ease of use, but lacks some of the more advanced features found in newer systems like Git and Mercurial. The official website for CVS is https://www.nongnu.org/cvs/. Some basic commands in CVS include:

cvs checkout: Downloads repository from a remote server.
cvs add: Adds a new file to the repository.
cvs commit: Saves changes to the repository.
cvs update: Downloads latest changes from a remote repository.
Enter fullscreen mode Exit fullscreen mode

Comparison of Git, Mercurial, Subversion, and CVS

1. Speed:
Git is generally considered the fastest version control system, as it utilizes a decentralized model and stores data in the form of hashed values, allowing for faster data transfer and retrieval. Mercurial is also known for its speed, as it utilizes a similar decentralized model and stores data in a similar manner. Subversion and CVS are both centralized systems and may not be as fast as Git and Mercurial in terms of data transfer and retrieval.

2. Flexibility:
Git and Mercurial are both highly flexible version control systems, as they allow for the creation of multiple branches and merging of changes easily. Subversion is also flexible, but may not be as user-friendly in terms of branching and merging compared to Git and Mercurial. CVS is not as flexible as the other version control systems, as it does not support branching and merging as easily.

3. Security:
Git and Mercurial both utilize a decentralized model, which means that there is no central repository for data. This makes it more difficult for data to be lost or compromised. Subversion also has good security measures, as it uses SSL/TLS encryption for data transfer and has options for authentication and authorization. CVS has weaker security measures compared to the other version control systems, as it does not utilize encryption for data transfer and has limited options for authentication and authorization.

4. Ease of use:
Git and Mercurial can both be somewhat difficult for new users to learn, as they utilize a command-line interface and have a steep learning curve. Subversion is more user-friendly, as it has a GUI interface and is easier to understand for new users. CVS is also user-friendly, as it has a simple command-line interface and is easy to learn for new users.

Latest comments (24)

Collapse
 
fruntend profile image
fruntend

Сongratulations 🥳! Your article hit the top posts for the week - dev.to/fruntend/top-10-posts-for-f...
Keep it up 👍

Collapse
 
niza profile image
Ebenezer Enietan (Niza)

Thank you

Collapse
 
mneme profile image
Alex T

I have a question about git. The creator of the repository has a .csv file with data. But he removed it after that. Is there any way we can extract the csv file from git?

Collapse
 
niza profile image
Ebenezer Enietan (Niza)

Check the commit history
Check out the commit that precedes the one that deleted the file.
here is resource for you freecodecamp.org/news/how-to-recov...

Collapse
 
auscompgeek profile image
David Vo

I disagree that SVN and CVS are alternatives to Git. Git is a distributed version control system, which neither SVN and CVS are.

I agree that Git can be difficult to use though.

Collapse
 
niza profile image
Ebenezer Enietan (Niza) • Edited

I see what you did there only mercurial is a DVCS on my list ... but at least the are all VCS

Here is a DVCS that is not free perforce perforce.com/.

Other free DVCS: bazaar, someone in the comment mentioned fossil, Darcs etc.

Collapse
 
ozkanpakdil profile image
özkan pakdil

cvs you say 🤣 obviously you never used cvs before.

Collapse
 
mneme profile image
Alex T • Edited

Thank you so much for sharing! I was researching on different VCS previously. It has been a good reading and reference. Thanks for your effort. One question: none of the VCS allow with database?

Collapse
 
niza profile image
Ebenezer Enietan (Niza) • Edited

Technically they do allow db; the problem is getting db into the VCS Directory in a "convenient way" . You may want to look into VCS for dbs instead: Liquibase, Flyway, Redgate SQL Source Control, Datical, Microsoft Team Foundation Server (TFS), Oracle SQL Developer etc

Collapse
 
gbhorwood profile image
grant horwood

i have always been a fan of mercurial, precisely because it is 'lightweight'.

however, for the last four or five years, my company has been using git instead. not because we think it offers any particularly compelling features over hg, but because, quite frankly, it's the industry standard. if you need to 'play with others', be they new hires or integration partners or whatever, you probably need to be using git.

personally, i don't think this is an ideal situation. i would much rather prefer that there be a diverse and robust set of vc systems. but the fact is that we live in a monoculture. since bitbucket dropped hg two or three years ago, there hasn't been a large vc host that offers anything but git.

Collapse
 
niza profile image
Ebenezer Enietan (Niza)

I agree if a person is new to the industry or seeking employment it must be git if you want to fit in. Any new VCS coming into the industry must find a compelling competitive angle may be some kind of AI catchy feature.

Collapse
 
leob profile image
leob

You must be joking - why on earth would you want to use CVS or Subversion instead of Git ???

Git is literally the most brilliant piece of software that I can think of, it's a godsend ... don't hurt my feelings and the feelings of most devs by saying that you prefer CVS or Subversion over Git ... but you're joking, right?

(steep learning curve, no, pick a good tutorial or manual and you can learn the basics in a day)

Mercurial, yeah okay I think it's conceptually the same as Git, but why bother? Trust me, nobody needs an "alternative" to Git, really nobody, spend your time on more useful endeavours.

Collapse
 
mneme profile image
Alex T

Kinda disagree. I think as developer, it is always good to have alternatives. Never do things without backup or backdoor.

Collapse
 
leob profile image
leob

Because - some day all of a sudden Git might mysteriously stop working, and then I'm glad I have my CVS or my Mercurial? :)

Collapse
 
niza profile image
Ebenezer Enietan (Niza)

Its good to know git has die hard fans

Collapse
 
leob profile image
leob • Edited

Yes indeed it does - 95% of the software devs out there :)

Thread Thread
 
niza profile image
Ebenezer Enietan (Niza)

I agree it's basically an industry standard

Thread Thread
 
leob profile image
leob

Right ... at least in this area we have a standard, instead of having to argue over a dozen marginally different alternatives, all of which are doing virtually the same thing in the end ... more standards please!

Collapse
 
rouilj profile image
John P. Rouillard • Edited

Having used CVS, subversion, git and Mercurial, I prefer fossil. It provides the distributed nature of hg and git while not being as annoying as git. Software control systems should just get out of the way. Git seems to get in the way for many developers and for non-developers well...

Plus fossil is more of GitHub in a box (GitHub is why I think git really took off). Fossil includes: a web interface, full text search, wiki, embedded documentation, forum, ticketing, and real time chat (for small groups). In fact the fossil web site is a running fossil instance.

If you really need to, fossil can export to git so you can use github's ecosystem to run your CI and other jobs.

Collapse
 
leob profile image
leob

Git isn't "annoying" ... don't make things complicated for yourself and for others by insisting on using a revision control system which 99.99% of the world is not using. But yeah, use it if you must.

Collapse
 
niza profile image
Ebenezer Enietan (Niza)

Nice

Collapse
 
bcostaaa01 profile image
Bruno

I disagree with Git having a steep learning curve. As more practice is put into learning how to use it on a daily basis, it becomes more and more natural to use it, even the most “abstract” concepts.

Using the command line is the basic of the basics for a developer. It is perhaps the “starting point”, so it should be one of the main things to invest first and then become as natural to use it for all things Git. Nevertheless, GitHub has a great tool called GitHub Desktop. I have used it a couple of times in the past and had a great experience. It makes Git less “abstract” to someone getting started.

As for security, Git has an absolutely great approach to security, from cryptographic hashing to checksums to verify the data integrity, access control mechanisms (user authentication and authorisation, for example) and secure transport protocols (HTTPS and SSH, for example).

Subversion and CVS have one particular command that can be misleading: checkout. Git is much more explicit in this with git clone. checkout has a different purpose in Git and Subversion & CVS - to change to a different branch, which is why Git’s clone makes way more sense, in my opinion.

All in all, I think Git is still the best option.

Collapse
 
mneme profile image
Alex T

I think what the author meant is git requires more on command line. It is true that command line is a basic for all developers. I faced a challenge that I need to showcase stuff to non-technical clients or crews. Or sometimes non-technical team members need to access or edit.

Collapse
 
niza profile image
Ebenezer Enietan (Niza) • Edited

Learning git is not really difficult but it is relative to the others but it is more flexible, secure, fast, and basically an industry standard. Thanks for the engagement