• 1 Post
  • 137 Comments
Joined 3 years ago
cake
Cake day: June 15th, 2023

help-circle
  • For an honest answer, from an Open Source perspective, it’s mostly auth, profiles, and discoverability.

    Presuming I have a GitHub account, when I encounter a library or tool or something that’s hosted on GitHub that means I can fork it, make issues, comment on issues, make pull requests from my fork to upstream tied to issues, and generally have seamless interaction with any and all software on GitHub.

    Or, if I have my account added to a project, then I can also merge PRs and push to master and be a maintainer of that software without any friction.

    When I see that software is hosted on KDE’s thing it’s like “Ugh”. I have to login to that, and create a profile for that, and then figure out how tickets work there, and how do I contribute to that. It’s enough to just not, most of the time. And maybe I do that for kdenlive. Then I have a bug for Gimp. Okay, what the heck do they use? Is that another login? How do I contribute over there? Is registration even open? Okay guix, oh boy a mailing list. Do I want to subscribe to a dev mailing list just to submit a 2 line patch? I think I’ll just not… I’m sure someone else will fix it eventually…

    So besides all that, some people like their GitHub profile, and like that people can see all the things they’ve contributed to from one spot. That’s why it’s often linked on resumes, but beyond that there’s also a kind of cultural cachet to having a diverse and positive profile, should someone look. If someone is a maintainer of a repo with a lot of stars, that might tell you they’re “important” even if you don’t know why. Because maybe you’re a JS programmer, but this person seems to be big in the Java community, because they seem to maintain a few high profile java libraries.

    And then lastly, it’s sometimes useful as a shortcut in searching. “Source code” is kind of a useless term for searching, so if I search “ruby Ledger file library” I’m more likely to get some docs or a rubygems page, but if I search “ruby Ledger file GitHub” I’m probably going to get what I actually want, which is a readme and a git uri I can clone and play around with. Or a web view of the source I can search through to debug something without cloning. At least assuming that is what I want, it depends on what my goals are, but it’s useful often enough that I do it sometimes as a way of jumping to the source part.

    I’m typically anti-centralization, and anti-microsoft, and if we all move away from GitHub I’m sure I’ll live, but this is why I like it despite its problems. And sometimes I want a webview of file contents, with search, without cloning, so sue me 😛









  • I know it’s kinda off topic, but what I find even weirder are bands that are “one hit wonders” in one country, but have like 10 hits and a long career in another country.

    They’ll have a whole wikipedia article of awards they’ve won you’ve never heard of, and tours they went on, and you’re like “they wrote more than one song!?”



  • It’s nice of this poster to ignore the $181m spent on “other projects” and conclude this is some kind of scam. If we include the Linux Kernel with the other projects part, that’s about 67%, or two thirds, of their expenses are paying for various and assorted open source projects. Among them the kernel. So if you’re a “cash and cash alone” person, then 2/3rds of your money is still going as cash to software projects.

    And if we include things like community tooling and project services, which may help a project in ways beyond just cash that becomes about 78% in total, or over three quarters.

    That’s pretty good, I think, but to each their own.



  • Right, but what I’m saying is that git doesn’t store authorship information or line-by-line history, no matter how it’s done. Figuring out which line came from where is an algorithm the git blame command does every time you request it, and that algorithm can give different results depending on which options you give the blame command. And so what you’ve found here is a collection of commits that produces a situation the default blame algorithm can follow, without any optional flags, which is neat! Maybe not great for git history, but neat!


  • Interesting. Yeah, sounds like what git blame -C is for, so I’ve never made copies when splitting files, I’ve just moved lines between files naively. But I guess if one’s tools are limited and doesn’t have the ability to -C, then I guess I could respect the hack that is that solution?

    I mean, I’m 99% sure git doesn’t store blame or authorship info in the pack files, even as a convenience cache, and just guesses by traversing the patch log with heuristics live when you run blame anyway, so the history mostly doesn’t matter there, but the way you’ve done it does seem to have tricked the heuristics into doing what you want without relying on an option, so that’s neat! It’s an interesting hack, and I like interesting hacks 😛

    By the way, if there are down votes, they’re not from me!



  • Yeah, I’m with you. I mean, git isn’t magic. You “can” squash anything, including a merge commit, by just being at the end result, running git reset <commit you want to be squashed off of> and then running a manual git add and commit there. That’s basically all a squash is.

    But what you’ll be left with us a single commit that contains all of the code from the branch you’re squashing and also all the code pulled in from every branch you merged, all written as though it all came from this one commit. And maybe that’s what you want? But it feels like also maybe it’s not?



  • Huh. I have never in my 19 year career using git, ever wanted to copy a file and pretend all of the history of that file is also the history of the new file. I mean, I don’t think I’ve ever even wanted to copy a file? Why are you copying a file?

    Like, maybe I’m just too familiar with git to see the forest for the trees, but what the heck are you doing over there? 😅

    And just in case it’s useful, a tip is that you can use git blame -C to have the blame algorithm use a heuristic to try and find a “source” line if it was moved, including from another file, during a commit, and then continue following the history of that line, to try and get the real commit where this was written, not just the last time it was moved around.



  • Lord of the Rings barely counts, because not only were all three books out and classics before the movies started (obviously), but the three movies were basically worked on at the same time. It’s nuts, but somehow they managed to do it.

    So it’s not like they released the first, got crazy hype, and then phoned everyone up and said “electric Boogaloo, you in?”. They’d already shot most of the second and third by the time the first came out, as I recall.

    Also I really liked Glass Onion 😛