Live data from Hacker News

Is Git Irreplaceable? (2019)

fossil-scm.org

511–520 of 559 posts

Re: Is Git Irreplaceable? (2019)

#511

Earlier quoted context omitted.

By the way, the "one checkout per repository" is not strictly true. You can use "git worktree"; this is a lightweight way to reuse an existing git repository and have each worktree use a different branch. It's a nice feature, and I use it daily. Also, a comment about the argumentation in "test before commit". It feels a bit artificial wrt. what can be done locally, what git commit and git push do and what their relat…

> By the way, the "one checkout per repository" is not strictly true. You must be referring to just the table at the top, not to the detailed argument below, which mentions git-worktree and then points you to a web search that gives a bunch of blog articles, Q&A posts, project issue reports and such talking about the problems that come from using that feature of Git. I suspect this is because git-worktree is a relati…

> Fossil is made to work that way from the start, so you can't run into these problems with Fossil. You'd have to go out of your way to use Fossil in the default Git style, such as by cloning into ~/ckout/.fossil and opening that repo in place.

That's unfortunate. Reading the comments here, switch-branch-in-place is seen as some kind of flaw, but I don't think I would voluntarily use a VCS that doesn't let me easily do that (it's most sensible way for me to work, from way before Git was a thing).

Re: Is Git Irreplaceable? (2019)

#512

Earlier quoted context omitted.

Not sure I understand the problem. If I lock fileX and go to lunch, then I own the lock on that file while I’m out to lunch. It’s basically analogous me pushing the file fileX.lock to the repo next to fileX, with my user id as content. I can only do it if it isn’t there. Everyone else will only see that lock if they fetch and if they don’t, they might edit their local copy of fileX too, but would be prevented from pu…

> Not sure I understand the problem. If I lock fileX and go to lunch, then I own the lock on that file while I’m out to lunch. And if you go on vacation for two weeks instead?

Same thing obviously. But this is just a method of communication. It’s instead of emailing/shouting “don’t edit the background image today please” across the office.

An admin can remove the lock. Or you can allow force-pushing by anyone to replace it or whatever.

Not sure why this is seen as so complicated, version control systems have done it since forever. It’s not trying to solve some distributed lock system in a clever way. It’s dumb centralized mutex per file. And yet again this is all that’s needed (and it’s also added to git in git-LFS!).

Re: Is Git Irreplaceable? (2019)

#513

Earlier quoted context omitted.

You should not be checking in binary files into git. That defeats the entire purpose and bloats the repo size enormously. Git LFS should be used instead. Or storing a Sha256sum and putting the file elsewhere.

That is a solution but then it's no longer distributed.

Being distributive isn’t a feature for the binary files contents. I don’t want 100 historical versions of a huge game texture, just the latest one. The history is distributed however, so I can see who changed the texture even when disconnected. Centralized binaries like git LFS works like any package/asset manager.

There is no one that would want distributed binaries in git. But people also don’t want to switch from git to something else just because they have a 100GB or 10TB repo. Tooling (build tools, issue management) everywhere has decided that git is all that’s needed.

Not putting binaries in git isn’t a solution at all. Binaries are part of the source in many applications (e.g game assets, web site images...). Distributing every version of every binary to everyone is also not a solution.

Re: Is Git Irreplaceable? (2019)

#514
post #244

Earlier quoted context omitted.

However, it's practically impossible to avoid learning how to use it these days, so "much better UI than git" will never be a compelling selling point for an alternative VCS I think this is true if you think the target market for VCSs is professional software developers only. But there are other people writing code that might care less about the fact that Git is the standard for professional software development and…

Thanks to Github, git is the standard for non-professional software development as well. My kids are in high school and they're using it. Gitless looks great. It looks like you nailed all the main issues I have with git. If you ensure that people never have to use the regular git interface, maybe it'll take off. I hope so! BTW Daniel was my PhD advisor :-).

Thanks to Github, git is the standard for non-professional software development as well. My kids are in high school and they're using it.

Yes, but maybe they care less about using Git compared to another VCS as long as the other VCS interacts with Git and they can put their repo on GitHub. The question is:

If you can use a VCS that is easier to learn/use than Git and that is compatible with Git so that you can put your repo on GitHub if you want to, would you use it? If no, why?

My guess is that most professional programmers would answer "No, because Git is an industry standard and I need to know Git to get a good job", while other people that write code but have no intention on becoming professional programmers are much more likely to answer "Sure, why not!".

If you ask your kids, I'd love to know what they said :)

Gitless looks great. It looks like you nailed all the main issues I have with git. If you ensure that people never have to use the regular git interface, maybe it'll take off. I hope so!

BTW Daniel was my PhD advisor :-).

Thank you!

Re: Is Git Irreplaceable? (2019)

#515

Earlier quoted context omitted.

Fossil's opinion on this is that history is an immutable record of project history. It may be messy and unfortunate at times, but it is what happened, and it shouldn't be altered in place any more than you'd do that with an accounts ledger. In extremis, Fossil offers the "shun" command to remove improperly-committed artifacts, but even then it's subject to a lot of restrictions. ( https://fossil-scm.org/fossil/doc/tr…

> Fossil's opinion Tools don't have opinions, people do. Fossil is just inflexible. You don't want to alter history? Don't do it then. Git supports not altering history just fine.

I can't control what other users of the repo are doing, so it's not that simple.

Re: Is Git Irreplaceable? (2019)

#516

Earlier quoted context omitted.

> Fossil's opinion Tools don't have opinions, people do. Fossil is just inflexible. You don't want to alter history? Don't do it then. Git supports not altering history just fine.

I can't control what other users of the repo are doing, so it's not that simple.

If you are their superior, other users disregarding your orders is s social problem, not a technical one. If you aren't, it's a good thing they are able not to do what you want.

Tools being more flexible is strictly a good thing. If they are misused, the person that misused them is responsible. It is that simple.

Re: Is Git Irreplaceable? (2019)

#517

Earlier quoted context omitted.

"Having an exact binary copy of a build a bug was reported against can be incredibly useful." Sure, immutable build artifacts can be invaluable -- but aren't they also an orthogonal concern?

> Sure, immutable build artifacts can be invaluable -- but aren't they also an orthogonal concern? One person's immutable build artifact is another person's vendored build input. It's common to vendor third party libraries by uploading their immutable build artifacts (.dll, .so, .a, .lib, etc.) into your VCS, handling distribution, and keeping track of which versions were used for any given build. It makes a lot of s…

Yeah, I get it. Still seems a stretch to fault git for "failing" to optimize for that inefficient-by-design use case though.

Re: Is Git Irreplaceable? (2019)

#518

Earlier quoted context omitted.

I have never used Fossil, but I used to be a strong proponent of Mercurial. My advice is don't - Mercurial lost, git has won, and fighting against the current is just going to make your life harder. The main advantage Mercurial has over git is a command line syntax that makes consistent sense. The operations you want to do are easy and as you try and do more complicated things, the new commands will be unsurprising a…

I know Git inside and out, but I had to use Mercurial for a client a couple years ago. I found it to be the most baffling and nonsensical source control experience of my life. It might be a case of cross-contamination. Like you said, each SCM uses similar terms for different concepts, so my Git knowledge may have unfairly colored how I expected similar terms to work in Mercurial. But stuff like: "hg log" gives you _e…

It's sad that because of your ignorance you fail to appreciate the beauty of Mercurial.

Re: Is Git Irreplaceable? (2019)

#519

The git internals are good for some kinds of projects but for the actual majority of projects git is a very bad fit. Most people don't get that because they are blind for the much better tools like mercurial and fossil. The git UI/UX on the other hand is the worst piece of crap ware known to man. This piece of shit has probably destroyed more data than any other tool ever written. People who think that git is any goo…

mod this up

Re: Is Git Irreplaceable? (2019)

#520
post #304

Earlier quoted context omitted.

Nothing about your problems had anything to do with git & everything to do with the commercial service you were using for your source code hosting. Github the company is not interested in providing you (or anyone else) with free storage for arbitrary data. You were unable to pay for the storage options they do provide because you did not have admin rights to the github account you wanted to work with. None of this is…

> Nothing about your problems had anything to do with git & everything to do with the commercial service you were using for your source code hosting. All the commercial service providers recommend keeping total repository sizes LFS is a suggested alternative by several commercial service providers, not just one, and seems to be one of the least horrible options with git. You're certainly not suggesting any better alt…

No one is saying git doesn’t have problems. It's just weird that you keep on conflating issues with Github with issues with git.
Post reply on HN