• Zron@lemmy.world
        link
        fedilink
        arrow-up
        3
        ·
        6 days ago

        You know, none of the “AI is dangerous” movies thought of the fact that AI would be violently shoved into all products by humans. Usually it’s like a secret military or corporate thing that gets access to the internet and goes rogue.

        In reality, it’s fancy text prediction that has been exclusively shoved into as much of the internet as possible.

    • danhab99@programming.dev
      link
      fedilink
      arrow-up
      3
      ·
      6 days ago

      Genuine question: what would it take to poison an LLM with ai tools to run git push --force origin main or sudo rm -rf /

      • adminofoz@lemmy.cafe
        link
        fedilink
        English
        arrow-up
        1
        ·
        3 hours ago

        Pen Tester here. While i don’t focus on LLMs, it would be trivial in the right AI designed app. In a tool-assist app without a human in the loop as simple as adding to any input field.

        && [whatever command you want]] ;

        If you wanted to poison the actual training set in sure it would be trivial, but It might take awhile to gain some respect to get a PR accepted, but we only caught an upstream attack on ssh due to some guy who feels the milliseconds of a ssh login sessions. Given how new the field is, i don’t think we have developed strong enough autism to catch this kind thing like in SSH.

        Unless vibe coders are specifically prompting chatgpt for input sanitization, validation, and secure coding practices then a large portion of design patterns these LLMs spit out are also vulnerable.

        Really the whole tech field is just a nightmare waiting to happen though.

  • Scary le Poo@beehaw.org
    link
    fedilink
    arrow-up
    24
    arrow-down
    3
    ·
    7 days ago

    Just a heads up, it you don’t know how to use cli git in 2025 you’re probably a shit developer. There are undoubtedly exceptions, but I would argue not knowing version control intimately makes you a bad developer.

    • easily3667@lemmus.org
      link
      fedilink
      English
      arrow-up
      6
      arrow-down
      26
      ·
      6 days ago

      Why learn an archaic and honestly horrifying command line interface, possibly the worst CLI ever made in the history of computing…when nice normal graphical interfaces work better, have discoverability, have troubleshooting tools, and don’t require memorizing scripture?

      • ScoreDivision@programming.dev
        link
        fedilink
        arrow-up
        13
        ·
        edit-2
        6 days ago

        Mate… Theres maybe like 5 “git + singleword” commands that cover 99.999% of all of your uses of git. Its really not hard.

      • expr@programming.dev
        link
        fedilink
        arrow-up
        10
        ·
        6 days ago

        Because they are universally incapable of coming anywhere close to the full power of git.

        I can’t tell you how many times I’ve had GUI-only people ask me to unfuck their repo (fortunately not at my current job, because everyone uses the CLI and actually knows what they’re doing). It’s an impedance to actually learning the tool.

        Ultimately any GUI is a poor, leaky abstraction over git that restricts many of the things you can do for little actual benefit.

      • letsgo@lemm.ee
        link
        fedilink
        English
        arrow-up
        9
        ·
        6 days ago

        Most cli stuff is a lot easier than programming. If you can’t use cli then by definition you’re a shit programmer.

        Of course if you simply don’t want to use cli that’s a different matter.

      • gamer@lemm.ee
        link
        fedilink
        arrow-up
        8
        arrow-down
        1
        ·
        6 days ago

        There’s nothing ‘archaic’ about git’s CLI. I think you might just be opposed to CLI’s in general, which is fine for a regular computer user, but paints a grim picture of your competency if you’re a developer.

        • WhatsTheHoldup@lemmy.ml
          link
          fedilink
          English
          arrow-up
          4
          ·
          6 days ago

          That seems unnecessarily harsh.

          I find the built in controls with visual studio supremely convenient.

          After using git init --bare for the remote repo I use the built in git controls for branching and switching out as well as syncing and pushing. Why not, the button is right there and it’s literally faster.

          • Scary le Poo@beehaw.org
            link
            fedilink
            arrow-up
            8
            ·
            6 days ago

            The difference is that PRESUMABLY you aren’t utterly dependent upon it. If vscode utterly fucks your repo with a shit command, you’ll not really have any trouble fixing it. That’s the huge difference. The point is not that all GUI controls are always bad all of the time, the point is that you need to know what the hell you are doing in git as a basic tenant of developer competency.

      • Scary le Poo@beehaw.org
        link
        fedilink
        arrow-up
        11
        arrow-down
        1
        ·
        6 days ago

        The fact that you don’t already know why and are dependent on GUI tools that you don’t fully understand is the reason that you’re probably not a very good developer.

        Git is incredibly powerful. Knowing why and how is infinitely valuable. Nothing about git cli is archaic or even particularly difficult to understand. Also the man page is very excellent.

        • easily3667@lemmus.org
          link
          fedilink
          English
          arrow-up
          3
          arrow-down
          10
          ·
          6 days ago

          Ah, the no true Scotsman fallacy. Neat.

          Your lack of rational thought backed up by facts rather than feelings is why you’re a bad developer.

          See I can do it too.

          But honestly even saying “nothing about the git cli is archaic” is…well, it’s either disqualifying or Stockholm syndrome, and Stockholm syndrome isn’t real.

          • Scary le Poo@beehaw.org
            link
            fedilink
            arrow-up
            4
            ·
            edit-2
            6 days ago

            I said that you are probably not very good. Your lack of git knowledge and your seeming inability to learn git means that you’ll likely never be able to function effectively in a development team and will only succeed in holding everyone back. Your lack of knowledge of version control overall is a massive point against you from the outset.

            If you’re a solo developer and never need to collaborate with other developers then good for you, but you lack of version control knowledge means that you’ll also probably end up being one of the ones crying that you lost 6 months of work because of stupid reason x y or z.

            Read up on fallacies, I did not use one. Your pathetic attempt to shoehorn anything that I said into a no true Scotsman fallacy just shows that you also have poor communication skills.

            Holy fucking shit. I didn’t even catch the bit at the end. You really think that cli arguments are archaic??? I’m going to go ahead and assume that regex has you scared shitless as well. Fuck me, you are not a good developer.

            Sidenote, something that will help you understand regex and you can test your strings against it in realtime, look up https://regexr.com/

      • ඞmir@lemmy.ml
        link
        fedilink
        arrow-up
        4
        ·
        6 days ago

        As someone using git for the last 10 years by now: you’re wrong. No UI has managed to give me access to all the fuckery I often do very quickly on the command line. I was honestly surprised to see IntelliJ nowadays supports an interactive rebase, but reflog, which should be a basic git feature, is still not widely supported in most IDEs in 2025. Or adding, resetting or checking out files with regex. Setting up and modifying lfs. And these are all basic features, good luck doing something like using branch~n syntax for some of the operations etc.

        Git UI is shit and will be for a long time.

      • شاهد على إبادة@lemm.ee
        link
        fedilink
        arrow-up
        2
        ·
        6 days ago

        Why learn a GUI that can change from release to release when I can learn a CLI once and be done with it. An additional plus is that CLIs are easier to script and automate.

      • Transtronaut@lemmy.blahaj.zone
        link
        fedilink
        arrow-up
        3
        ·
        6 days ago

        I never understood the SVN hate. Then, as now, the problems are almost never caused by the tools, and almost always caused by the people misusing them.

        • gamer@lemm.ee
          link
          fedilink
          arrow-up
          2
          ·
          6 days ago

          I never got around to using anything except git, partly because of all the hate people would throw at the other competitors back in the day. Even if the criticisms were not fair, and even if it was all a secret conspiracy to kill git competitors, it definitely worked out for the best. Imagine the hell we’d be in today if we had to constantly deal with different VCS solutions.

          • Transtronaut@lemmy.blahaj.zone
            link
            fedilink
            arrow-up
            1
            ·
            4 days ago

            It wasn’t really that big a deal. Most of them have more in common than they have differences. If anything, I experienced fewer problems in the age of SVN. It has fewer options than git, but it’s also a lot more intuitive and easy to learn, which counts for a lot when your largest limiting factor is your coworkers.

            Not saying I want the world to go back to that, just pointing out the hate is really overblown.

  • simonced@lemmy.one
    link
    fedilink
    English
    arrow-up
    2
    ·
    5 days ago

    Letting your text editor write your code, not using version control… I don’t feel sad at all. Hope lesson was learned.

  • Prehensile_cloaca @lemm.ee
    link
    fedilink
    English
    arrow-up
    17
    arrow-down
    3
    ·
    7 days ago

    Why did the porn star become a network admin after retiring?

    She was already an expert in load balancing

  • gamer@lemm.ee
    link
    fedilink
    arrow-up
    5
    ·
    6 days ago

    I made a game engine and a game back in highschool, but all that code is lost because I didn’t know how to use git. I knew git existed (and even knew enough to know it was better than mercurial or svn), but I was too lazy to learn.

    • Lucy :3@feddit.org
      link
      fedilink
      arrow-up
      8
      arrow-down
      1
      ·
      edit-2
      7 days ago

      Tbf you have to do that for the first push, if a Readme file was autogenerated

        • Lucy :3@feddit.org
          link
          fedilink
          arrow-up
          2
          arrow-down
          1
          ·
          7 days ago

          Huh? I’m talking about existing code being in a dir, then initting a git repo there, creating a pendant on your hoster of choice and then pushing it there. Wouldn’t cloning the repo from step 3 to the code from step 1 overwrite the contents there?

          • stembolts@programming.dev
            link
            fedilink
            arrow-up
            8
            ·
            edit-2
            7 days ago

            There are multiple solutions to this without using --force.

            Move the files, clone, unmove the files, commit, push being the most straightforward that I can summon at this time… but I’ve solved this dozens of times and have never use --force.

            • Hoimo@ani.social
              link
              fedilink
              arrow-up
              3
              ·
              7 days ago

              If your remote is completely empty and has no commits, you can just push normally. If it has an auto-generated “initial commit” (pretty sure Github does something like that), you could force push, or merge your local branch into the remote branch and push normally. I think cloning the repo and copying the contents of your local repo into it is the worst option: you’ll lose all local commits.

              • Jayjader@jlai.lu
                link
                fedilink
                arrow-up
                2
                ·
                5 days ago

                If it’s a single, generated, “initial” commit that I actually want to keep (say, for ex I used the forge to generate a license file) then I would often rebase on top of it. Quick and doesn’t get rid of anything.

              • stembolts@programming.dev
                link
                fedilink
                arrow-up
                2
                ·
                edit-2
                7 days ago

                True, in the situation with a local history maybe it’s worthwhile to --force to nuke an empty remote. In that case it is practical to do so. I just typically like to find non-force options.

          • dev_null@lemmy.ml
            link
            fedilink
            arrow-up
            3
            ·
            7 days ago

            Yeah, I was thinking of a new repo with no existing code.

            In your case you’d want to uncheck the creation of a readme so the hosted repo is empty and can be pushed to without having to overwrite (force) anything.

      • computergeek125@lemmy.world
        link
        fedilink
        English
        arrow-up
        5
        ·
        7 days ago

        Does that still happen if you use the merge unrelated histories option? (Been a minute since I last had to use that option in git)

        • Lucy :3@feddit.org
          link
          fedilink
          arrow-up
          3
          ·
          7 days ago

          Never have heard of that, but in the case of you also having a Readme that will be even more complicated, I imagine. So just adding -f is the easier option.

  • Lucy :3@feddit.org
    link
    fedilink
    arrow-up
    141
    arrow-down
    1
    ·
    edit-2
    7 days ago

    “Developer”
    “my” 4 months of “work”

    Those are the ones easily replaced by AI. 99% of stuff “they” did was done by AI anyway!

  • dan@upvote.au
    link
    fedilink
    arrow-up
    130
    ·
    8 days ago

    Before Git, we used SVN (Subversion), and CVS before that. Microsoft shops used TFS or whatever it’s called now (or was called in the past)

    • i_stole_ur_taco@lemmy.ca
      link
      fedilink
      arrow-up
      56
      ·
      8 days ago

      Wasn’t it Visual SourceSafe or something like that?

      God, what a revolution it was when subversion came along and we didn’t have to take turns checking out a file to have exclusive write access.

      • dan@upvote.au
        link
        fedilink
        arrow-up
        23
        ·
        edit-2
        8 days ago

        Visual SourceSafe

        Yes! That’s the one I was struggling to remember the name of. My previous employer started on Visual SourceSafe in the 90s and migrated to Team Foundation Server (TFS) in the 2000s. There were still remnants of SourceSafe when I worked there (2010 to 2013).

        I remember TFS had locks for binary files. There was one time we had to figure out how to remove locks held by an ex-employee - they were doing a big branch merge when they left the company, and left all the files locked. It didn’t automatically drop the locks when their account was deleted.

        They had a bunch of VB6 COM components last modified in 1999 that I’m 80% sure are still in prod today. It was still working and Microsoft were still supporting VB6 and Classic ASP, so there wasn’t a big rush to rewrite it.

        • HarkMahlberg@kbin.earth
          link
          fedilink
          arrow-up
          7
          ·
          8 days ago

          Welcome to my world… our new lead architect has mandated that we move everything from TFS to GitLab before the end of the year. I hope it comes true.

          • Flames5123@sh.itjust.works
            link
            fedilink
            English
            arrow-up
            3
            ·
            7 days ago

            At the start of COVID, I migrated our three projects to git from VSS. I also wrote a doc for our other teams to do the same. It was amazing once we got it working. Small team of 3, but we started using feature branches which enabled us to easily merge everything into a testing branch and release only certain features at a time. So much cleaner.

            Before I left, I almost got semi automatic CI/CD working with Jenkins!

          • nogooduser@lemmy.world
            link
            fedilink
            English
            arrow-up
            3
            ·
            7 days ago

            I remember when our company split up and we had to give them the source code of some older versions that they still used. We couldn’t do that because the repo was corrupt meaning that we couldn’t access some older revisions. We had no problems using it day to day so nobody noticed which meant that all backups were also corrupted.

      • HarkMahlberg@kbin.earth
        link
        fedilink
        arrow-up
        8
        ·
        8 days ago

        Yeah VSS was the predecessor to TFS, and now TFS is called Azure DevOps… whatever the fuck that means, Microsoft needs to get it together with product naming. Anyway TFS sucks major rotten ass. I have my problems with git - namely user friendliness - but TortoiseGit has put all those troubles to rest.

        Nothing like that can fix TFS.

        • Pieisawesome@lemmy.dbzer0.com
          link
          fedilink
          English
          arrow-up
          4
          ·
          8 days ago

          I started at a company that uses ADO (migrating to GitHub this year) and it took me like 20 minutes to figure out how to change repositories in the UI… idk how they built something that unuser friendly

          • HarkMahlberg@kbin.earth
            link
            fedilink
            arrow-up
            5
            ·
            8 days ago

            I could go all day with my grievances… For some fucking reason, Team Foundation Server thought it would be a good idea to model their source control on folders and files rather than atomic nodes of changes like git.

            I’m sure someone thought this was intuitive, but it falls apart once you realize you can check in cross-branch or even cross-project files into a single changeset. This allows you to easily pollute projects you’re working on but didn’t intend to modify yet, if you forgot to exclude their files. And then, when your code reviewer checks the history of the project folder you modified, they don’t even notice all the files you changed that WEREN’T in that folder but were part of the same changeset. So you pass your review, and all the sudden there’s unwanted, unnoticed, and untested changes in some other project, with a nice code review stamp on them!

            And the entire checkout/checkin system is just flipping the read-only flag on the files in file explorer. It’s the most amateurish shit. If you edit a file in an open, active project, the file gets checked out automatically. But if you’re editing loose scripts that aren’t part of a bespoke SLN or CSPROJ, you have to check those out manually… which it will only tell you to do once you try to save the file.

            And then Visual Studio cannot understand that I might need to switch regularly between 2 types of version control systems. If you’re not on the same VCS plugin when you want to open a recent project on it, it doesn’t automatically switch it for you, it just refuses to load the project. The only way to reliably to switch is by going into the options menu, changing it there, THEN loading the project.

            git is practically made of grease compared to how stuttery and clunky TFS is. I’ll shed no tears for the fossils who are having a hard time learning git, they will be better off whether they realize it or not.

    • The_Decryptor@aussie.zone
      link
      fedilink
      English
      arrow-up
      10
      ·
      7 days ago

      A place I worked at did it by duplicating and modifying a function, then commenting out the existing one. The dev would leave their name and date each time, because they never deleted the old commented out functions of course, history is important.

      They’d also copy the source tree around on burnt CDs, so good luck finding out who had the latest copy at any one point (Hint: It was always the lead dev, because they wouldn’t share their code, so “merging to main” involved giving them a copy of your source tree on a burnt disk)

    • GhostlyPixel@lemmy.world
      link
      fedilink
      English
      arrow-up
      8
      ·
      7 days ago

      My first SWE job out of college in 2019 they were still using SVN because none of the seniors could be bothered to learn how to use git.

      The “well this is how we’ve always done it” attitude had a death grip on that place

      • dan@upvote.au
        link
        fedilink
        arrow-up
        7
        ·
        edit-2
        7 days ago

        For what it’s worth, SVN is a much simpler object model compared to Git, which makes it easier to understand.

        It’s centralized rather than distributed like Git is, which has some disadvantages. Most operations require access to the server, as opposed to Git where you usually have a copy of the entire repo and can work offline. Git users can clone the repo from other users rather than relying on a centralized server.

        On the other hand, a centralized server also simplifies some things. For example, instead of commit hashes, SVN has revision numbers, which are natural numbers that start at 1 and are incremented for every commit. A lot of software that used SVN used to use the revision number as part of the version or build number.

        Git is definitely the source control system to choose today, but SVN can still have its place.

      • JakenVeina@lemm.ee
        link
        fedilink
        English
        arrow-up
        3
        ·
        7 days ago

        Thank god, we STILL use TFS at work, and its core version control model is reeeeeally fucking awful.

    • ByteJunk@lemmy.world
      link
      fedilink
      arrow-up
      4
      ·
      edit-2
      7 days ago

      Oh yeah, I remember using tortoiseCVS briefly.

      Mercurial and Bazaar also showed up at around the same time as git, I think all spurred by BitKeeper ending their free licenses for Linux kernel devs.

      An interesting shot to the foot, that one.

      BitKeeper was a proprietary version control system that somehow (and with a lot of controversy) ended up being adopted by a big chunk of the Linux kernel developers, while others were adamant against it.

      In any case, they provided free licenses to Linux devs, with some feature restrictions (including not being able to see full version history) only available for premium clients, while Devs who worked on open source competing systems were even barred from buying a licence.

      When someone started to work on a client that allowed access to these locked away features, they revoked the free licenses, and a host of solutions started being developed immediately. Linus Thorvalds himself started work on git, and that eventually got adopted by the whole Linux ecosystem and, nowadays, the world.

      As for BitKeeper, it’s been dead for years now.