Live data from Hacker News

Is Git Irreplaceable? (2019)

fossil-scm.org

51–60 of 559 posts

Re: Is Git Irreplaceable? (2019)

#51

It feels that way, and it's heartbreaking that our entire species ended up locked into a tool with such a horrible interface. In a way, the git monopoly is worse than Windows or x86 or IPv4, because it's not just a piece of technical infrastructure. Its arcane commands and its branching model have infected all of our brains. You can choose a different editor, you can choose a different operating system, but for as lo…

Check out new versions of git. The overloaded checkout and reset commands are being phased out to some extent.

Re: Is Git Irreplaceable? (2019)

#52
post #22

It is necessary but not sufficient for any new contender to do at least the following to have any chance of taking over: - Interoperate with the major player(s), currently Git and in many places unfortunately still Subversion. svn2git probably did more for Git adoption than any other feature or tool, because it allowed a fairly painless transition without losing information. - Solve at least one big problem with the…

> unfortunately still Subversion Which is a better choice than Git for most projects, to be honest.

> Which is a better choice than Git for most projects, to be honest.

That's pretty subjective. Most engineers I interact with personally know how to use Git but not SVN. I'd argue the opposite is true base on my subjective experience.

Really depends on where/how you're using versioning, team familiarity, etc.

Re: Is Git Irreplaceable? (2019)

#53
post #17

Earlier quoted context omitted.

> There were/are slightly less confusing version control systems (mercurial) but they didn't catch on for whatever reason. Also (sorta) darcs, and hopefully pijul. I sincerely hope some patch-based version control can catch on.

I would love to see a merger of Pijul and Darcs again. Having two diverging patch-based approaches (one declining, one not lifting off) is not a good thing.

I think darcs has an algorithm which is not really suited for large repositories with many users contributing.

pijul regrettably seems to be broken most of the time, but I don't think it's irredeemable.

Re: Is Git Irreplaceable? (2019)

#54
post #19

Every version control system that's become dominant in my lifetime became popular because it fixed a major obvious flaw in the previous dominant system (RCS, CVS, SVN). From where I sit, Git has a couple obvious flaws, and I expect its successor will be the one that fixes one of them. The most obvious (and probably easiest) is the monorepo/polyrepo dichotomy.

I don't see any obvious flaws with Git. The monorepo/polyrepo discussion exists apart from your choice of version control system and has little to do with Git, as far as I can tell

> I don't see any obvious flaws with Git.

Merge conflicts.

Re: Is Git Irreplaceable? (2019)

#55
post #19

Every version control system that's become dominant in my lifetime became popular because it fixed a major obvious flaw in the previous dominant system (RCS, CVS, SVN). From where I sit, Git has a couple obvious flaws, and I expect its successor will be the one that fixes one of them. The most obvious (and probably easiest) is the monorepo/polyrepo dichotomy.

Can you explain more about that? I've worked with both and I feel like monorepo is kinda a pain, but I dont understand where Git fits in to either directly. Seems like it just snapshots files.

It's only a problem at a really large scale. At the scale of Microsoft or Facebook, there are factors that lead to the use of a monorepo being more efficient. At that big of a scale, companies have enough resource to develop internal tooling to deal with the problem (e.g. the use of Mercurial at Facebook).

Re: Is Git Irreplaceable? (2019)

#56

Earlier quoted context omitted.

How does that interaction work? Last I checked, it wasn't great or it was too much of a hassle (I don't remember exactly).

Exporting to Git: You set a "Git mirror" once, optionally with a remote URI, and call fossil's export routine. Example: I wrote a cronjob that runs once every night that does nothing but update my Git mirrors from the current Fossils. cd $FOSSILDIR for f in *; do /usr/local/bin/fossil git export -q -R $f done Importing works... similarly. :-)

Hmm, but does importing keep all your issues, etc? I imagine it just imports the new commits?

Re: Is Git Irreplaceable? (2019)

#57
post #7
post #4

Earlier quoted context omitted.

Which features would make it for you?

Perforce is still in use in content heavy industries because Git still struggles with large binaries. Something with git branch semantics that could handle those files would be huge.

Another feature of Perforce I liked was view specs. If your dealing with massive repos (as for example games tend to have) you often only want some small portion of the entire repo. You may also want to alter the repo layout on your local machine and a client view spec can allow you to slice and dice the content in many interesting ways.

This is also very useful for working with external contractors. Not only can a user specify their own view specs, there is admin control for client views that can make portions of the repo read-only or effectively invisible on a per-user basis.

Perhaps this is possible with git?

Re: Is Git Irreplaceable? (2019)

#58
When people talk about killer features missing in Git, there is more beyond the UX and mono/poly repo.

One thing is code review. There is no code review in Git.

What I expect in 2020 is that I should be able to specify reviewers for the commit (which I pick out of a list of people who can approve it). These people should be able to leave comments on the commit. I should be able to both respond to comments and modify the code before the commit gets checked in. The history of the comments and changes should be maintained.

There is nothing in Git that supports this flow in a natural way.

A replacement for (or evolution of) Git can be a tool that would support this code review flow from the get-go.

And yes, there are external tools for code review. But that all should be a part of version control.

Re: Is Git Irreplaceable? (2019)

#59
post #29

I am happy to use whatever everyone else starts using, provided it works at least as well. But I also do not have many problems that git won't solve, so I don't feel a burning need to switch. I think git is good enough that source control is no longer a very interesting problem.

But did you think that RCS, CVS, or SVN were also good enough? Or is this new?

I don't think there are many people that considered CVS good enough, even back in the days. For example, there was no way for end-users to retain the history of a file when renaming/copying it. When the FreeBSD project still used CVS, committers always had to file tickets against the admins to ask them to do it server-side through a so-called 'repocopy':

https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=106080

Re: Is Git Irreplaceable? (2019)

#60
post #29

I am happy to use whatever everyone else starts using, provided it works at least as well. But I also do not have many problems that git won't solve, so I don't feel a burning need to switch. I think git is good enough that source control is no longer a very interesting problem.

But did you think that RCS, CVS, or SVN were also good enough? Or is this new?

Speaking personally, definitely no. Even before I heard of git, I did not like SVN. In particular, it made an error I don't hear many other people mention where directories were checked out to revisions, rather than entire repositories. Consequently it was very easy to accidentally update just a subset of your repository, and have your whole repository in a state that didn't exist in the version control system at all. There were several times there were builds that were completely unreproducible because it turned out that they were, technically, r83726, except this directory was r84713, but this other directory was r78372 except for a subdirectory that was r84299, etc.

That problem I saw even before I saw a replacement.

But once I saw git, having a full copy of the repo was pretty killer. It was also better at merging, partially for having the history local. In fact I recall some SVN people protesting at the time that merging wasn't so hard, but in a nutshell, they were just wrong. It was harder. Source control that can't merge fluidly is pretty limited from the get-go. There's literally entire dimensions of things we do with git that were so impractical with SVN that only the very largest projects could afford to do them, with the whole "workflow" question. Now you don't even hear about the difficulties of merging since all the open source SCMs copied each other and "good merging" is just table stakes now.

The problem is is that git doesn't really have fatal flaws, it has annoyances, and that's not the same thing. "The UI is difficult" is an annoyance for its target audience. Most every other criticism I've seen of it is an annoyance, not a fatal flaw. Fossil doesn't solve a problem I have with git. It has some neat ideas and arguably does solve some problems, but it doesn't solve the problems I have with git; you could lift Fossil's solutions to wiki and bugtracking and just put them in Git and I'd probably be happier with that than Fossil itself.

The problem isn't that Fossil is an SCM competing with git; the problem is that Fossil is a monolith competing with the rapidly-moving git ecosystem. The former is perhaps beatable, the latter is a juggernaut. All of Fossil's other features sitting in git is something that might get somewhere, but if the base source control isn't git-based, I can't sneak it into a work project to try it out. I've got a corporate mandate that all source belongs somewhere standard, and it's a perfectly sensible requirement for someone paying me to do a job.

Post reply on HN