Hacker News new | past | comments | ask | show | jobs | submit login

Are there git alternatives that aren't a PITA to master before one can use them in production?



Subversion. It was made by CVS maintainers and a lot of care and thought was put into how it works and how the commands work and what the names of the commands are. Subversion is limited in being an older model of version control where there is exactly one single source of truth.

In my mind Git solves a different problem that Linus Torvalds was facing: many people working in parallel with only some of the ideas pushed upstream, but many people wanting to make changes and easily being able to move forward to the latest changes from upstream.

My extremely opinionated view is that most people should use Subversion unless they have a very complicated team structure. And that means every solo dev working by themselves should not complicate their own lives by using Git unless they are really comfortable with it already.


Git is well worth learning for any kind of collaboration or speculative work. It's fundamentally better at resolving merge conflicts, because it doesn't rely on being informed about which files may have been moved or copied. The Subversion maintainers owe me days of effort salvaging my small team's branches.


I have just the opposite view of yours! Subversion is so so complex. It requires a client and a server. It might have a nice UI, but its internals are a mess. Just the opposite of git!

Why would a solo dev choose to use a client-server version control instead of one that works fully locally?


Subversion does not require a server :-)

You can ask Subversion to create a repository anywhere you like in the filesystem.


Jujutsu! Git-compatible and a generational leap in source control that most people are going to love.

As a former member of Meta's source control team, I believe this with pretty high confidence -- many of the workflows that we rolled out within Mercurial/Sapling, and caused it to consistently be the most loved developer tool at Meta for many years based on surveys and interviews, have been adopted and improved by Jujutsu. See my testimonial, the first one at [2].

[1] https://martinvonz.github.io/jj

[2] https://martinvonz.github.io/jj/latest/testimonials

(Disclosure: I'm obviously biased towards the Jujutsu workflows, and its creator and I worked together on Mercurial. But I like to think that this specific belief of mine is pretty data-driven, both via stated and revealed preference.)


Mercurial if you're not on a huge code base. While the core command-line hg works great, GUIs and third-party programs are kind of lacking.

Atlassian Sourcetree in theory works with Hg (because Atlassian's Bitbucket used Mercurial as their primary version control system before moving to git) but SourceTree is Windows/Mac only, there is no Linux version for some strange reason.

Trying to run SourceTree on Linux via WINE fails because Sourcetree can't be installed with the 'Administrator' user and recent WINE releases have (accidentally?) removed the ability to run a WINE program as a non-Administrator user.

I haven't personally tried (yet) to install Sourcetree on a Windows machine and copy the directory over and try via WINE, but it's on my list to do.


This whole thread got me to go back and see what else is out there and I remembered there's another (potentially) saner choice: Fossil : https://www.fossil-scm.org/home/doc/trunk/www/index.wiki

I haven't used it myself but I might for a solo project I'm involved in right now.

A good read (not my article, linked from the Fossil site):

https://wholesomedonut.prose.sh/using-fossil-not-git


A small, simple subset of git? You generally don't need all the esoteric stuff people complain about day-to-day.

Pretty much what is listed in the OP cheat sheet.


git is now so ubiquitous in software development, that it's hard to justify learning another version control system. You're probably better off learning the core concepts and using the most common git commands through some GUI.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: