Slashdot is powered by your submissions, so send in your scoop

 



Forgot your password?
typodupeerror
Open Source Programming Linux

Torvalds Celebrates Git's 20th Anniversay. Is It More Famous Than Linux? (itsfoss.com) 90

Celebrating Git's 20th anniversary, GitHub hosted a Q&A with Linus Torvalds, writes Its FOSS News.

Among the other revelations: He says his college-age daughter sent a texting saying he's better known at her CS lab for Git than for Linux, "because they actually use Git for everything there." Which he describes as "ridiculous" because he maintained it for just four months before handing it off to Junio Hamano who's been heading up development for more than 19 years now. "When it did what I needed," Torvalds says, "I lost interest." Linus then goes on to share how Git was never a big thing for him, but a means to an end that prevented the Linux kernel from descending into chaos over the absence of a version control system. You see, before Git, Linux used BitKeeper for version control, but its proprietary licensing didn't sit too well with other Linux contributors, and Linus Torvalds had to look for alternatives. As it turned out, existing tools like CVS and Subversion were too slow for the job at hand, prompting him to build a new tool from scratch, with the coding part just taking 10 days for an early self-hostable version of Git.

In its initial days, there were some teething issues, where users would complain about Git to Linus, even finding it too difficult to use, but things got calmer as the tool developed further.

Torvalds thinks some early adopters had trouble because they were coming from a background that was more like CVS. "The Git mindset, I came at it from a file system person's standpoint, where I had this disdain and almost hatred of most source control management projects, so I was not at all interested in maintaining the status quo."

Torvalds Celebrates Git's 20th Anniversay. Is It More Famous Than Linux?

Comments Filter:
  • by Hans Lehmann ( 571625 ) on Sunday April 13, 2025 @12:04AM (#65302005)
    As someone that started with Visual Source Safe (pray for my soul), then over the years moved to CVS, than Subversion, and then to Git, I think I'll stick with Git.

    If the origin site (GitHub, BitBucket, whatever) went down in flames overnight, it would only be an annoyance to our programming team, not requiring hoping and praying that the backups still work.

    I keep Git repositories on my home NAS server for things as mundane as packing lists for various types of family trips. It just works, IMHO
    • by drnb ( 2434720 )
      And if you really want to go wild, you can grab the standard web/PDF documentation for git and go to the part where it shows you how to setup a server. Actually servers of varying complexity.

      Your personal version control evolution gave me flashbacks. :-)
    • I do have problems with Git: Rebase, squash merge etc. Because the real history is hard to visualise, people rewrite history, destroying the underlying information needed to do merges correctly, removing commits from history completely - commits you might want to keep because it might point to a version, where you code worked well. Why have the git community not added information to make a nice history overview instead of hacking the otherwise well functioning commit graph?
      • by SpzToid ( 869795 )

        I do have problems with Git: Rebase, squash merge etc. Because the real history is hard to visualise, people rewrite history, destroying the underlying information needed to do merges correctly, removing commits from history completely - commits you might want to keep because it might point to a version, where you code worked well. Why have the git community not added information to make a nice history overview instead of hacking the otherwise well functioning commit graph?

        GitLab is a free, open-source GIT server that does what you desire [gitlab.com].

      • Everything you described is bad habits, not bad git. Every contract job I do I see how others approach git. So far, Walmart and Microsoft do git the best.
      • by allo ( 1728082 )

        I don't know what problem you see. There were versions of gitk for visualizing history since a long time and the more polished version is gitg. Some IDE integrations can also draw a nice graph and some web applications for git do the same.

    • Re: (Score:2, Interesting)

      by zephvark ( 1812804 )

      As someone who started with Visual Sourcesafe, I find other source control systems awkward to use and lacking in features. It's been a long while since I've had a need for one but, at the time, they couldn't even maintain time/date information. You had no idea at all of what happened, when.

      I'll assume that this has maybe/probably been fixed but, I wasn't about to migrate the company over to something that barely looked like an alpha release. VSS was crude and problematic but, it really just worked, aside fr

      • VSS never worked.
        If you think, it did, you are in the lowest percentile of the population on this planet that ever used a version/source controll system.

        • What's the German word for being a gaslighting arsehole? Is there one? Or should we just call them all angel'o'spheres?

          • VSS was notoriously bad. Supposedly it was unpopular even inside Microsoft, who forced various groups to use it. Describing someone as "gaslighting" for saying it never worked is absurd. Even CVS was more usable.

            The biggest issue was the locking paradigm where if someone checked out a file, nobody else was able to, because that was how it prevented conflicts. Nice and simple in theory, in practice utterly impossible to use in the real world. And that's just comparing it to CVS, which most considered inadequ

        • by dbialac ( 320955 )
          It's easier to work with than git. I've used VSS, svn, cvs, sccs and git. I'll take svn first, VSS second and cvs third and sccs fourth. I'll only use git if forced to use it.
      • If you are looking at why time/date is usually related to the last time you got a different set of file revisions, it may be due to how tools like "make" use that information to optimize the compile process. So it may be a feature rather than a bug. It is not my domain of expertise - I may accept a different theory.
        • by thogard ( 43403 )

          The time/date meta data is fine when it is correct with a properly written Makefile. The problem is most projects have never had a proper Makefile which is one of the reasons so many other build systems are out there. People don't seem to know how to build a proper Makefile. When Linus started with Linux, he was using systems that didn't do timestamps correctly and there were ugly hacks to keep things working. Even today some of those concepts have made their way into many other Linux based distros even

    • sure the source would be there but not all the context like the bugs/issues if you read/watch the interview even Linus Torvalds acknowledges this is not good

      Like readme create a standard folder and log them in that...

      JJ

    • by dbialac ( 320955 )
      Like me or hate me, I don't care, but I hate git and always will. It works great for a single-person project or the massively scalable projects like the one it was designed for. I find it to be overly complicated for cases in between. I've always seen it as popular because Torvalds created it. Even upon it's release, he'd said it wasn't intended to be used with more typical projects. A number of years ago, I took over managing a development team who didn't understand it despite over a year of working with i
  • Git sucks (Score:2, Interesting)

    by rapjr ( 732628 )
    It imposes pain on millions of people to make the integrators life easier. Even CVS was better for the masses. How many times has git screwed things up for you when all you wanted was to check in your code so it was backed up? It needs to separate backup functions (making them simple) and code merge/integration functions. In fact, code merge/integration could use new and better tools itself. Just like CAD tools, programming tools are woefully primitive.
    • by Valgrus Thunderaxe ( 8769977 ) on Sunday April 13, 2025 @12:33AM (#65302031)
      Thanks to your wisdom, I'm running right back to Source Forge and CVS.
    • How many times has git screwed things up for you when all you wanted was to check in your code so it was backed up?

      The answer is never. I have never done that. It's not hard.

      It needs to separate backup functions (making them simple) and code merge/integration functions.

      That's an interesting point.

    • Re:Git sucks (Score:5, Insightful)

      by Waffle Iron ( 339739 ) on Sunday April 13, 2025 @01:15AM (#65302079)

      How many times has git screwed things up for you when all you wanted was to check in your code so it was backed up? It needs to separate backup functions (making them simple) and code merge/integration functions.

      It sounds like you mainly need to bone up on the concept of a branch.

    • Re:Git sucks (Score:5, Insightful)

      by ClickOnThis ( 137803 ) on Sunday April 13, 2025 @01:45AM (#65302103) Journal

      Even CVS was better for the masses. How many times has git screwed things up for you when all you wanted was to check in your code so it was backed up?

      If you want to use git as though it were CVS -- just to "back up" your files -- then it doesn't sound like you're getting too fancy. How could you screw things up?

      And who are these "masses" you speak of? If they do any kind of semi-involved development work, and they still use CVS now, they would have torn out all of their hair by now. CVS manages files, not collections of them. Even Subversion would be better.

      • then it doesn't sound like you're getting too fancy. How could you screw things up?

        The most common way is by rebasing changes that have already been pushed to the repository.

        • by dargaud ( 518470 )
          See, and that's where you lost half of your users already. I've been using git for years, SVN before that, CVS before that. And I'm still lost at the most basic things when using git with more than just me on the project. Did modifications in 'masters' which is blocked to write and should have been in a new branch to be merged later ? Oh shit.
          • OK, something's wrong with you, and it's that you're using the name "master" instead of "main" or "HEAD." Fix that and Git will work fine.
            • by dargaud ( 518470 )
              Well, some old projects still use the old nomenclature.
              • by bjoast ( 1310293 )
                Many new projects too. The new convention of using "main" as a default branch name is not in any way inherent to the git software, but is just a choice made by some large git service providers, such as Github and Gitlab.
            • *thatâ(TM)s* what you chose to whine about in his comment?

              People with nothing to say attack minor points because they cannot address the issues

            • by bjoast ( 1310293 )

              OK, something's wrong with you, and it's that you're using the name "master" instead of "main" or "HEAD." Fix that and Git will work fine.

              You seem confused. "HEAD", and "master" and "main", are completely different concepts. First of all: "master" is the default branch name setting in git, despite the hysteria that suddenly caused many services to migrate to "main" (I still use "master" because why not?). Still, they are only different branch names, and some repos use "main" for their default branch, while others use "master". Second of all: "HEAD" simply points to where you have navigated to in the history and therefore is a different concep

              • : "master" is the default branch name setting in git, despite the hysteria that suddenly caused many services to migrate to "main" (I still use "master" because why not?).

                You're obviously racist. Report to HR at once, account blocked.

            • I object so strongly to the premise that the branch "master" has been offensive to any black person in the history of ever that I set my defaults to "master-race" in protest

          • by Entrope ( 68843 )

            What is this "blocked to write and should have been in a new branch to be merged later"? Who imposed that rule on your repositories? It's not part of the default Git workflow.

            If you join a project that applies particular rules and have a bad experience with those rules, don't blame the tool they use for your bad experience, especially if they did a bad job communicating those rules when you joined.

            • It is not unusual for the production branch to be locked down for only release management to update. In that case there was probably a development branch he should have pushed his changes to. One of the wonderful things about git is that you can pull down a copy of the development branch into another directory and update it with your changes.
              • by Entrope ( 68843 )

                "probably" is the key word there. That's a project-specific policy -- in particular that vs feature branches or pull requests from the maintainer of a given area -- that the project should have explained when he started working on it. It's not reasonable to say that Git sucks because of restrictions layered on top of it by third parties.

                I would further argue that the main development branch should not be a production branch, and restricting updates for it to release managers is therefore a bad policy. It

    • unfortunately (Score:5, Insightful)

      by Anonymous Coward on Sunday April 13, 2025 @01:52AM (#65302111)

      CVS development stopped when git started. CVS certainly is easier for small projects (e.g. three people working on their CS201 project) but it does not scale at all so there's no large-scale incentive to continue CVS development, and so there is no continued CVS development. You're expected to just bite the bullet and learn git. Or at least, learn enough git to not be dangerous.

      This is really the overall problem with open-source software, there's either far too many projects solving the same problem or everyone gloms onto one or maybe two open source projects. You get too many when the community has yet to focus around any one project, so no one project has the resources to actually be good. You get one or two when the community has focused on one project and it becomes irrational to do anything other than build your own project on the existing project. "Two" usually happens when there's a licensing issue with the incumbent open source project and major players are incentivized to make something new.

      There's a bunch of issues with this. One, it's a single point of failure in many different senses of the word (see, e.g., the xz hack by some intelligence agency -- and there are undoubtedly many others in the mainstream Linux projects which have not been detected). Two, it pretty much sucks all the air out of the room when it comes to innovating something better. At least with closed source projects, the fact that any competing project has the opportunity to make a lot of money is an argument to get investment to bootstrap the new project. (See, e.g., how so many closed source competitors of Adobe have sprung up as Adobe has gotten greedy and awful.) Three, because open source projects are largely funded and directed by a handful of mega-corporations, when they get together and decide to move onto something new (for reasons that benefit them and are not necessarily good for users at large) it's almost impossible to keep the old projects going.

      Functionally, for most users of most open source projects, it's as if one monolithic company has decided to provide all software and you don't get any alternatives. We had more choice in the Unix days when the dozen or more major Unix vendors supplied their own stacks than today when your choices are Linux, Linux, Linux and maybe FreeBSD.

      • CVS certainly is easier for small projects (e.g. three people working on their CS201 project)

        It's not. Download TortoiseGit and it's just as easy to use as CVS.

    • It's okay to be ignorant. But it's not fair to assume everyone else, too, just because of your own situation.

    • by allo ( 1728082 )

      Limit yourself to the simple subset that e.g. svn uses and you avoid the problems. If you create a mess with git, then you created it. Without the advanced features you won't get a mess. svn commit is just "git commit -a", merging the SVN way is --ff-only and resolving the conflicts yourself. Branches do not need to be rebased, if you don't want to risk creating conflicting histories. You'll end up with something that is less powerful but may prevent some mess you can make with the powerful features.

    • To use a riff on a Dave Ramsey quote "Git gives you features you don't need to solve problems you don't have which gives you complexity you don't want."
    • Git is often a PITA but I'd take it over CVS in a heartbeat. There's a reason version control isn't the controversial subject today that it was back in 2000, when programmers swore at it rather than by it.

      CVS isn't much better than just making regular back-ups. By contrast there's an entire ecosystem around Git enhancing discoverability and directly aiding the development process. It's one of the few times a modern development process has created obvious tangible upsides without any serious negatives - othe

  • by EreIamJH ( 180023 ) on Sunday April 13, 2025 @01:00AM (#65302065)

    Started with BitKeeper changing its license because someone in the community had tried to reverse engineer the protocol. Linus tried to defend BitKeeper, but the other devs were spending their days shouting at the BitKeeper guy while searching for something freer. Linux coding pretty much stopped.

    Then one morning Linus posted git v0.1 and instead of searching for another system the linux devs spent the next week critiquing git. Then they started to add patches and within a couple of weeks the system was fit for casual use. Overnight git became the VCS that every dev used at home and dozens of other VCS' companies were out of business within the year.

    Good times.

    • by ISayWeOnlyToBePolite ( 721679 ) on Sunday April 13, 2025 @03:11AM (#65302187)

      Started with BitKeeper changing its license because someone in the community had tried to reverse engineer the protocol. Linus tried to defend BitKeeper, but the other devs were spending their days shouting at the BitKeeper guy while searching for something freer. Linux coding pretty much stopped.

      Then one morning Linus posted git v0.1 and instead of searching for another system the linux devs spent the next week critiquing git. Then they started to add patches and within a couple of weeks the system was fit for casual use. Overnight git became the VCS that every dev used at home and dozens of other VCS' companies were out of business within the year.

      Good times.

      I believe "Kernel SCM saga.." is the relevant LKML thread for the creation of git (although I can't find Linus announcing git 0.1 so perhaps there was also another thread) https://marc.info/?l=linux-ker... [marc.info]

    • The other devs were right to shout at the BK guy because he was acting unreasonably, dangerously paranoid and mentally unstable. Plus, the rug was already pulled under their feet, so they had nothing better to do. Linus knew he needed to something quickly to channel all that energy, so he sat down and created git.

      • The problem was Linus choosing to use BK in the first place and promoting its use by others. His judgement about using free vs commercial software has always been suspect, and this was just one example of it. Git was him trying to fix his own mistake.

        It's a fine line trying to be all things to all people, an open source champion for the devs and contributors, and a closed source champion for the hardware manufacturers and device driver writers.

        He is both, and personally I don't like it. We live in a wor

      • Also it's worth noting that:

        1. The developer "reverse engineering" it had merely used telnet to connect to the TCP/IP port BK used and typed 'help'. That was literally it.

        2. The dev involved was Andrew "Tridge" Tridgell, the developer of Samba, a critical Linux tool that wouldn't exist without reverse engineering. Suddenly people who had no problems with reverse engineering SMB felt the need to weigh in and attack Tridge for daring to type "HELP" at a prompt.

        A horrible episode in Linux's history that, thank

  • by hcs_$reboot ( 1536101 ) on Sunday April 13, 2025 @01:30AM (#65302093)
    99% of "regular" people say no. 99% of geeks say yes, out of snobism.
  • by R3d M3rcury ( 871886 ) on Sunday April 13, 2025 @01:36AM (#65302097) Journal

    Stupid Git [youtube.com]...

  • by linuxguy ( 98493 ) on Sunday April 13, 2025 @02:28AM (#65302141) Homepage

    If Larry McVoy had not been such a hard ass about BitKeeper, many of us may still be using CVS, Subversion or shudder Visual Source Safe.

    Stallman wrote an open letter, thanking him. https://www.gnu.org/philosophy... [gnu.org]

  • by bradley13 ( 1118935 ) on Sunday April 13, 2025 @02:43AM (#65302157) Homepage

    We have always used version control. For whatever reason, Git became the dominant platform. Nearly everyone in software development uses it, whether or not they have anything to do with Linux. That's why it's so famous.

    A historical perspective might be interesting. It's really not clear why Git "won". Mercurial also offers distributed repositories, is OSS, and was first released at the right time. Why did Linus decide to "roll his own".

    • Re: (Score:2, Informative)

      by Anonymous Coward
      I mean, the history isn't hard to figure out. Linus started working on git first. Mercurial was a near-contemporary but git came first and git was going to get used on the Linux kernel because Linus made it for his own needs. Mercurial wasn't quite as performant as git, but Facebook saw that Mercurial was receptive to patches, so Facebook aimed their nuclear-level engineering resources at Mercurial to make it better. Git later got similar assistance from Microsoft (if I recall correctly). Later, Microsoft b
    • by jsonn ( 792303 )
      GitHub became the dominant platforms. I'm always amazed by articles like this that can't even acknowledge that the far majority of git "users" are pretty illiterate when it comes to their SCM tool of choice and depend on GitHub (or clones) for almost all their non-trivial interactions.
      • by bn-7bc ( 909819 )
        Because they don't learn git, they route learn how to do things on github because that's where they are steered by .. everyone, and github is not surprisingly well integrated with Visual studio (don't know about VS code bit it wouldn't surprise me if busing to github is the default choice there as well).
      • by dbialac ( 320955 )
        It's popular because Torvalds created it. Had somebody else created it, it wouldn't be popular.
  • https://github.com/jj-vcs/jj [github.com] is the next generation of version control systems. I love it. It uses got or mercurial underneath, so it's compatible with the got ecosystem, and treats the working directory a a commit(!), allows me to edit a previous commit, auto-rebasing subsequent computers and treats merge conflicts as version controlled entities, allowing me to resolve merge conflicts when it suits me, and not immediately. Ready for us to kick the tires!
  • You course corrected my reading comprehension

  • Git still can't track files, which is a major downside. I want to explicitly track when a file was copied or moved - git's detection heuristics often get it wrong.

    Git still lacks svn externals. Submodules can't bind to HEAD of the external source, nor bind a single file. In development branches, I usually just want HEAD of whatever submodules there might be, and only maybe fix a specific version for a release.

    Git still can't track branches. If you delete a branch, it's entirely gone from history. And there's no timestamp for when you created a branch. Branches are not real object in the repo.

    In many ways, svn is still better. But git has won critical mass, so of course I use it. But not without grumbling.

    • "Git still can't track branches. If you delete a branch, it's entirely gone from history"

      If you decide that a branch is no longer worth pursuing, why would you need to delete it? Just leave it in the repository and move to a new branch just in case you ever want to go back to wonder "what the hell was I thinking when I created that old branch?"

      "And there's no timestamp for when you created a branch."

      I agree with this criticism. I haven't found a quick and easy way to locate the commit in the pare
    • by Entrope ( 68843 )

      Git doesn't track individual files because it tracks your project state. That's also why it doesn't let subprojects/remotes advance on their own: nobody has checked that combination at all. (The behavior you want has been responsible for many security holes when someone compromises a repo or project and others pull in a malicious version.)

      Git keeps the objects for a deleting branch for a while by default, and you can recover the commit IDs from the reflog. It's just not true that it delete them immediate

    • by allo ( 1728082 )

      If you delete a branch it is gone. What did you expect? Don't delete it if you want to keep it.
      You just keep it as it is. If you want to you can make up a name convention for branches you don't want to maintain anymore.

      • If you delete a file, it's gone. Oh no, wait, we track it in the history.

        Why are branches any different?
        • by Entrope ( 68843 )

          Branches are different because they are not files. The semantics are intentionally different.

          Oh, you accidentally committed secret data to your repository? I guess it's time to make a new repository because you can't remove access to anything you committed once. You should have checked before you committed, I guess.

          • by allo ( 1728082 )

            You can "delete" with "push --force". But the unreferenced commits stay available for a while if you know their ID. But if people already know them, any way to delete history comes too late. The advantage of git is, that your commit is not automatically pushed. If you notice you've got your private key in a commit, you can still "reset --hard" to the previous commit and create a commit without the key and avoid pushing the commit that would leak the key.

        • by allo ( 1728082 )

          A branch is a pointer to the latest commit in a history. Creating a new branch means creating a second pointer. Committing to the new branch means appending to a linked list (in that branch) and appending to a tree in the total git history. Merging two branches means continuing at a single branch, making the tree into a directed acyclic graph (DAG). Deleting a branch means deleting a pointer to the latest commit and losing the option to access it. You can still access the commit by ID or by tags (which are

  • You've just got to commit to it.

  • by Chelloveck ( 14643 ) on Sunday April 13, 2025 @11:55AM (#65302707)

    More to the point, I'd say that Git is more infamous than Linux.

    Look, it's a great tool... IF AND ONLY IF you have the same problem Linus had when he wrote it - that of a project the size of the Linux kernel with developers spread across the globe. It's a brilliant solution to that very specific problem. However, if you don't have that particular problem (and the vast majority of projects don't) it's an unwieldy Swiss-Army chainsaw that's only popular because that's what Linux uses (so it must be good!) and Github is free.

    In fact, I'd go so far as to say that the mere existence of Github proves that people don't use git the way it was intended. Git's claim to fame is that it's a distributed system. Github, on the other hand, is a very central point. If you're going to use it as a centralized system you should probably be using a centralized VCS tool like svn. Quod erat demonstrandum.

A Fortran compiler is the hobgoblin of little minis.

Working...