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.
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.
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.
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.
Top comments (24)
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 withgit clone
.checkout
has a different purpose in Git and Subversion & CVS - to change to a different branch, which is why Git’sclone
makes way more sense, in my opinion.All in all, I think Git is still the best option.
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.
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
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.
Its good to know git has die hard fans
Yes indeed it does - 95% of the software devs out there :)
I agree it's basically an industry standard
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!
Kinda disagree. I think as developer, it is always good to have alternatives. Never do things without backup or backdoor.
Because - some day all of a sudden Git might mysteriously stop working, and then I'm glad I have my CVS or my Mercurial? :)
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.
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.
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.
Nice
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.
Сongratulations 🥳! Your article hit the top posts for the week - dev.to/fruntend/top-10-posts-for-f...
Keep it up 👍
Thank you
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?
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
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?
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...
cvs you say 🤣 obviously you never used cvs before.
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.
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.