Git Is Awful | Prime Reacts

Поделиться
HTML-код
  • Опубликовано: 24 ноя 2024

Комментарии • 1,1 тыс.

  • @icedtonberry
    @icedtonberry Год назад +638

    This fellow said a lot without really saying anything at all.

    • @isaac_shelton
      @isaac_shelton Год назад +72

      i worked at google btw, you wouldn't understand

    • @flynn3649
      @flynn3649 Год назад

      ​@@isaac_shelton I worked at understand btw, you wouldn't google

    • @monad_tcp
      @monad_tcp Год назад +18

      He's good to work at a PR department of google.

    • @anandmahamuni5442
      @anandmahamuni5442 Год назад +2

      Bro be like skill issue

  • @DaLoler1
    @DaLoler1 Год назад +1329

    All I got from this is "Google has better tools, trust me bro"

    • @tusharsnn
      @tusharsnn Год назад

      They do. Just look at chromium repo.

    • @exit81dave
      @exit81dave Год назад +85

      He said nothing. It may be awesome but he said absolutely nothing.

    • @oleg4966
      @oleg4966 Год назад +47

      You want a better VCS? I can get you a VCS, believe me. There are ways, Dude.

    • @doanamo
      @doanamo Год назад +38

      I can easily believe that they have better tools than the rest of the world because they are competitive as a software house with a very long history of creating complex software. There is no surprise here.
      However, I feel like the guy was just rambling.

    • @davisdjosh
      @davisdjosh Год назад +1

      like gn and repo 🤷‍♂️

  • @robertharris4129
    @robertharris4129 Год назад +1145

    "git is terrible, google's tools are like science fiction compared to the rest of the world!"
    *refuses to elaborate*
    *leaves*

    • @Sammysapphira
      @Sammysapphira Год назад +133

      Every single time I've had to deal with a public-facing google tool I've wanted to rip my eyeballs out of my sockets. I shudder to imagine their unrefined internal tools

    • @monad_tcp
      @monad_tcp Год назад +35

      ever tried using anything from GCP ? I bet he's lying

    • @notuxnobux
      @notuxnobux Год назад +14

      Im not sure what he means. I have worked on chromium and we used commands but those commands were wrappers around git commands + other things. Maybe google only uses those tools that he speaks of in internal projects?

    • @ElclarkKuhu
      @ElclarkKuhu Год назад

      ​@@monad_tcp I've tried AWS, Azure & Oracle, I don't think they're any better.

    • @seanlestermiranda
      @seanlestermiranda Год назад

      the reason why he was probably layed off from google team is that he is pretty dumb, hiring him was a waste of money. 🤣

  • @JonathanTheZombie
    @JonathanTheZombie Год назад +1277

    Git is the reason why our -10x engineer can’t do permanent damage to our build system

    • @MrEnsiferum77
      @MrEnsiferum77 Год назад +23

      This is terrible explanation, just go back to 90's how they shipped games without tools like git.... without any versioning system...

    • @vitalyl1327
      @vitalyl1327 Год назад +106

      ​@@MrEnsiferum77developers who did not use version control systems in the 90s were trash developers not worthy of being mentioned. We had CVS ffs, and RCS before tbat.

    • @MrEnsiferum77
      @MrEnsiferum77 Год назад

      ​@@vitalyl1327 U are stupid and u sound like crap liberal... just try to find out.... one of the most iconic games is done on different HDD's and then mergeed manually (copy paste) the code on release day... and boom... works everything perfect...

    • @Microphunktv-jb3kj
      @Microphunktv-jb3kj Год назад +8

      ... being a professional coder is already.. being damaged.
      what's ur point ?

    • @karmatraining
      @karmatraining Год назад +59

      @@MrEnsiferum77 as an "old" developer I remember with horror how bad our source control system was, and how often people broke the build. Git is miraculously reliable by comparison (especially if you use CI)

  • @JustDeeevin
    @JustDeeevin Год назад +1008

    He never really gave any reason why Git is bad. He just said it was bad and they decided he was right.

    • @Endelin
      @Endelin Год назад +79

      Yeah, it seemed like he meant to say just Github, but said Git too and rolled with it.

    • @luvincste
      @luvincste Год назад +24

      ha said it's unintuitive etc, and i agree

    • @Cranked1
      @Cranked1 Год назад +111

      @@luvincste most "more advanced" programming "stuff" is unintuitive the first time. That's not an argument at all. Or is quantum physics bad now because it's unintuative...

    • @vidal9747
      @vidal9747 Год назад

      @@Cranked1 Quantum Mechanics is pretty much unintuitive. But if you stop thinking of its implications and focus in solving the linear algebra it is surprisingly easy at first. Of course that depending on initial conditions you can get a system that will take forever to solve. But by learning it in college I have a simple tip: Learn the math. See how its used in the real world, like with DFT. Them, after you know how the systems work and built some intuition, try and fit it to your model of the world. Visualize the wave function of the electron in atoms and molecules the way chemists do: as orbitals. Think of electrons as an electron orbital, that is composed of an electron wave-function in a potential well. Quantum mechanics, according to our understanding of the world (unless you're superdeterminist) is literally impossible to really visualize. How do you visualize a probability wave in 3 dimensions? And don't get me started in wave function collapse on observation - I don't know if it is clear, but in this sentence visualization and observation are totally different things (not a native English speaker). One observation: I took Quantum Mechanics in this semester. I don't know yet if everything I said is correct, but this framework of thinking made Quantum Mechanics less overwhelming to me. Edit: Probability waves are hard to visualize because it is weird to think of the fundamental theory of particles as something that could be (a probability) and not something that IS. For people it is very hard to understand probabilities as a real measure of things with real life consequences. It's easy to imagine a coin flipping. It is hard to imagine that a coin itself is made of probability waves. Of course, this way of thinking varies to interpretation of the facts. The probabilistic interpretation is the default they teach in college and it is a basis for every other interpretation. I am a firm believer that you have to have a strong basis before choosing your way to view the world as a Physicist. Obs.: I am here because I do Computational Physics and like programming in general.

    • @DrQuantumInfinity
      @DrQuantumInfinity Год назад +26

      ​@@Cranked1 To me, the difference is that quantum physics is so complicated that it can't be simplified or "improved". It's just fundamentally complicated and unintuitive. Version control is not even on the same scale of complexity. When I'm using git there are times when I can clearly picture the result I'm looking for, but getting there is needlessly complicated and unintuitive.
      One example is if I wanted to merge in some, but not all of the changes between two branches. It's doable, but feels more complicated than it should be.

  • @samfelton5009
    @samfelton5009 Год назад +353

    Git is the only technology I use that I don’t hate and now you want to take it from me 😭

    • @voidwalker7774
      @voidwalker7774 Год назад +39

      No one can take Git from you !!!
      Let this be your Braveheart moment. Put war paint on your face and storm the hill with your two-hander !

    • @IrizarryBrandon
      @IrizarryBrandon Год назад +3

      Magit for Emacs makes Git intuitive and understandable

    • @Frozander
      @Frozander Год назад +18

      ​@@IrizarryBrandongit is not unintuitive for me. I never understood the "unintuitive" argument

    • @IrizarryBrandon
      @IrizarryBrandon Год назад

      @@Frozander I feel Steve Yegge 100% on this one, especially when he drops that "Ugh!" It may be because, when I was beginning to learn how to program, I had no idea what "version control" was, let alone a notion of why such a thing would be useful, let alone experience with it (like some people do with SVN, Perforce, Mercurial etc.) Git was frustrating: I had to learn an entirely new and complex system _on top of_ that of learning to program, like building a spiffy penthouse on top of an already-completed five-story apartment building. Trying out Fossil was a revelation for me: Fossil has a built-in GUI that lets you see - and by "see", I mean *see* - your development branches. I think it was then when a bird's-eye view of what version control actually is, clicked for the first time. Then, while doing the Odin Project, I came across this amazing Git tutorial, which I wholeheartedly recommend to everyone: learngitbranching.js.org/. Finally, using Magit makes using Git a fun experience, because of the actionability of Emacs buffers. I probably can't do full justice to it here, so I refer the reader to emacsrocks.com/e17.html, the Magit episode of the "Emacs Rocks" series.

    • @Jaime-eg4eb
      @Jaime-eg4eb Год назад

      I'm gonna guess you work on Ruby on Rails

  • @tc2241
    @tc2241 Год назад +308

    Felt more like a career flex than any actual valid points

    • @pepsiplease69
      @pepsiplease69 Год назад +8

      That's exactly what it was.. Sadly.

    • @evg3nius
      @evg3nius 10 месяцев назад +5

      That's just cause you never used google tools 😆

    • @thirdeyeblind6369
      @thirdeyeblind6369 3 месяца назад

      Of course it is Yegge doing what Yegge does, Flex. He's so up himself.

  • @thingsiplay
    @thingsiplay Год назад +246

    Git does not scale? How on earth are the Linux devs working with Git?

    • @SolarShado
      @SolarShado Год назад +79

      That was my thought too. He does seem to be referring to "number of repos" with "scale" though, which... is a non-obvious take that it would have been nice to have elaborated upon.

    • @Ringoshiiro
      @Ringoshiiro Год назад +3

      Very true

    • @danielsan901998
      @danielsan901998 Год назад +5

      According to Facebook in the announcement of Sapling three-quarters of the 5.5 GB Linux kernel repo is the history, and they say that with Sapling it only download what it needs allowing to work with repositories that may be terabytes in size.

    • @AJMansfield1
      @AJMansfield1 Год назад +41

      @@danielsan901998 Git can do that too lol. (Though, I can certainly see an argument that git should probably make it the default behavior for repos past a certain size, rather than requiring you to manually specify it with a `--depth` argument when cloning.)

    • @sfalpha
      @sfalpha Год назад

      ​@@danielsan901998 Git are design for Linux Kernel in minds, it need to be fast even repo is very large (as long as disk/connection is fast enough), and able to work completely offline. If sapling does download only it needs, then it may design with different goals.

  • @Thect
    @Thect Год назад +168

    Tom have a perfect versioning system, much better than Google's tool and git, he's a genius

    • @johnnycochicken
      @johnnycochicken Год назад +4

      Tom is the best SVN user

    • @ninocraft1
      @ninocraft1 Год назад +1

      ​@@johnnycochickenthe *last xD

    • @briumphbimbles
      @briumphbimbles Год назад +4

      @@johnnycochicken Tom uses svn, mercurial, git and TFVC all at once. It is magnificent.

  • @bilbobeutlin3405
    @bilbobeutlin3405 Год назад +339

    If Google's internal documentation is so good, why are all the public docs so awful 😞

    • @upsxace
      @upsxace Год назад +40

      ikr? Their documentation is an abomination.

    • @isodoubIet
      @isodoubIet Год назад +38

      If google's ability to understand large codebases is so good, why is chrome such a steaming pile of dung?

    • @foxadee
      @foxadee Год назад

      ​@@isodoubIetI'm curious as to how bad things are under the hood. Chromium seems to Just Work™

    • @rutabega306
      @rutabega306 Год назад +8

      @isodoubIet chrome-based browsers have 90% of the market share, I don't think steaming pile of dung is accurate

    • @isodoubIet
      @isodoubIet Год назад

      @@rutabega306Lots of people use a steaming pile of dung, yes. It's truly a terrible browser.

  • @iggytt
    @iggytt Год назад +192

    Google obsession is not a mark of a useful software developer.

    • @Ringoshiiro
      @Ringoshiiro Год назад +6

      💯

    • @colemichae
      @colemichae Год назад +18

      Like the old days MS obsession, that guy sounded like he been on the drugs too long, not a single advantage he mentioned, Google's new integrated Dev tool is VSCode

  • @korzinko
    @korzinko Год назад +94

    I need world-scale for the repo with 40 commits and 10 javscript files

    • @katrinabryce
      @katrinabryce Год назад +9

      🤯 How do you manage to do anything in Javascript with only 10 files? I seem to end up with about 4500 dependency files before I even start doing any coding.

    • @korzinko
      @korzinko Год назад +7

      @@katrinabryce npm is hard, so I copy-paste all the dependencies in one file

    • @bob_kazamakis
      @bob_kazamakis Год назад

      @@korzinkoah. The ol manual esbuild

    • @phitc4242
      @phitc4242 Год назад

      ​@@katrinabrycejs sucks ass biggest piece of shit software ok thx bye

    • @maelstrom57
      @maelstrom57 Год назад +7

      @@katrinabryce You don't commit dependencies.

  • @Whatthetrash
    @Whatthetrash Год назад +90

    This guy is the programming equivalent of Comic Book Guy from Simpsons. "Worst. Source Control. Ever." (then doesn't explain why or give concrete examples)

    • @crashmaster26
      @crashmaster26 3 месяца назад

      haha right, that's what I was thinking :P

  • @Mglunafh
    @Mglunafh Год назад +151

    Very confusing. This had "old man yells at clouds" vibes in the first part and some google shilling in the second one. "I wanted to share with y'all that google devs can program tools and stuff, isn't it cool?"

    • @x--.
      @x--. Год назад +6

      First part, yes. Second part, intriguing. There's a point where lots of quality-of-life improvements in the development process would add up. If they've really optimized that environment and require everyone at Google to use it then how could it be bad? It'd probably rock the socks off everything and the more time you give to developers to use their expertise solving difficult problems or conversing with teammates on those problems by spending less time pushing buttons...
      I'm intrigued.

    • @joestevenson5568
      @joestevenson5568 9 месяцев назад +1

      ​@@x--.If it was that good they'd be selling it

  • @embedded_software
    @embedded_software Год назад +232

    The real question is: whose fault is it that you have 100k repos? That's insane

    • @sullivan3503
      @sullivan3503 Год назад +19

      As of 2021, they have 140,000 employees. It's not surprising at all that they would have 100,000 repos.

    • @metznoah
      @metznoah Год назад

      ​@@sullivan3503that's an average of 1.4 employees per repo
      If we're talking active repos(not read-only) what kind of quality work is being done with

    • @iojourny
      @iojourny Год назад +20

      The one at fault is whoever decided on a microservice architecture, but doesn't trust any of their teams to maintain their own repos, so there is at least one team (or worse, person) that has to monitor all 100000 repos.
      Or, the microservices have already devolved into hellish interconnected spaghetti, and now all teams need to understand each of the 100000 repos.

    • @briumphbimbles
      @briumphbimbles Год назад +21

      @@kidmoseyYou dont have to make repositories public. Also git isnt github and git isnt peoples lack of control.
      That problem would (and does) exist on any free public facing repository service ... it always has.

    • @makesnosense6304
      @makesnosense6304 Год назад +7

      This is yet again someone that can't think properly and blame git for the usage of it.

  • @opensourcedev22
    @opensourcedev22 Год назад +162

    If he worked for me and described issues this way without any semblance of cogent thought and analysis - he would have a much harder time getting my attention next time.

  • @ChrisCarlos64
    @ChrisCarlos64 Год назад +26

    I remember when I joined my team they used SVN but had no clue about how to do basic version control right. Basically everyone made their own folders and then they would copy and paste the code into a single "master" folder. No one even knew how to check in changes or anything. It was just a glorified file share.
    I managed to teach them proper version control strategies and make them go to Git. Life has been better since.

  • @ankitsanghi
    @ankitsanghi Год назад +65

    He’s probably talking about the entire workflow at google. It’s super easy to do things. You have an internal web based IDE, it’s integrated into the internal version control system which is custom built to handle Google’s monorepo and handle thousands of changes at once, once you make a change it opens it up in the custom code review tool (which to be fair is very nice) and then once it’s approved you just hit submit and runs all tests when checks. You also don’t need to set up your testing pipeline since the google custom server framework handles all that for you. It’s very hard to break that up and sell it since for one piece to function seamlessly you need everything else as well

    • @catcatcatcatcatcatcatcatcatca
      @catcatcatcatcatcatcatcatcatca Год назад +18

      That seems nice. But the natural question is how much of that workflow is a feature of the tools themselves, compared to how they are managed and configured?

    • @prgnify
      @prgnify Год назад +2

      What I'm thinking then is that the massively superior part of the tooling in regards to versioning control specifically is that it can be a "live" environment, somewhat like what Google does with their office apps, and then everything feels "effortless" to clone, check-out, merge, test, commit etc etc etc.

    • @ricardoamendoeira3800
      @ricardoamendoeira3800 Год назад

      That sounds pretty similar to what GitHub and some other companies offer these days, with codespaces. In fact it sounds like exactly the same thing.
      But in most software teams you don't need to work on that many different projects that setting them up locally is that big of a deal, plus you get to work with your own editor/tools and can work offline.

    • @Diewux
      @Diewux 9 месяцев назад +2

      So what the hell it has to do with git itself?

    • @coolxy2
      @coolxy2 4 месяца назад

      So basically something nobody would ever need or use outside of the Google bubble, plus it's so "custom" that it will never work outside of Google intranet. Alright, I'll stay with Git

  • @DePhoegonIsle
    @DePhoegonIsle Год назад +41

    Ya, what gets me, is when you can't even talk about why something is better that isn't even available to the public let alone anyone outside of a singular place/company/location/etc, and actively crying about someone liking a toool because it's 'good enough' though it could be better.
    Like, sorry bro.... that tool is sooo unavailable that ... the response is.... 'so fing what'? The tools you're dogging on so hard, barely able to explain what's wrong with it while the few available tools you say are slightly better, you don't even give a phantom of a reasoning. Like this seriously just sounds ALOT like sour grapes. and is pissed that something gets used in maybe sub-optimal ways but ends up being good enough & robust enough for it to not matter for the majority of people.
    We can all qq about github & privacy... but .... hoiw many would be willing to forkout for bandwidth, data storage, data access, & world wide access for their own hosting & storage, oh yes and some how establish it as reasonably trustworthy enough to be recognized as a place to visit safely.
    Seriously though, If git isn't good enough, then just what the fuck in version control do you exactly bloody want? I have a few git issues from time to time, but really it's nothing but by implementation most the time on my end, and even if it could be improved, there is something to be said about enforcing workflows and data checkout/in security along with knowing what code you do & do not use without checking.
    Seriously though, Google might have the best tools on the planet for version controlling, but it kinda don't really matter really honestly if no one but google see's it & no one can really put it to it's paces really. That also said how much is the tooling, and how much is it the procedures & practices around version controlling use.

  • @Muaahaa
    @Muaahaa Год назад +18

    The only thing that really intimidated me about Git early in my career was the scope of the tools features, but it didn't take long to realize that only a small amount of the API is needed to get 90% of the value.
    In terms of scale, I've worked at what I consider a medium sized company with 100 - 200 developers and didn't find scale issues that I'd associate with Git.

  • @sirhenrystalwart8303
    @sirhenrystalwart8303 Год назад +73

    This guy is completely incoherent. His argument for why git sucks is basically just making guttural icky noises. Onomatopoeia is not an argument.

  • @julkiewitz
    @julkiewitz Год назад +24

    It's true that Git doesn't scale to very very large sizes. Fundamentally though, very very large sizes are just not something that is supported by any alternative. It's certainly not SVN. Yes, having multiple repos linked together kind of sucks. But again what's the alternative then? Maybe just managing billions of files in one repo is just not a good idea (note, millions are just fine).

    • @johnyewtube2286
      @johnyewtube2286 Год назад +5

      I read that Google uses a giant monorepo.

    • @NameUserOf
      @NameUserOf 9 месяцев назад +4

      @@johnyewtube2286Microsoft too. They've used some patch for it to be better. I still don't understand how can programmers that love to separate everything in different files that each has different functions dumped everything in just one repo.

  • @helviett
    @helviett Год назад +13

    From a perspective of game developer:
    - Git is not good at handling binary files (e.g. game assets: textures, models, etc.) and doesn't have file locking for such files
    - Git can't effectively checkout specific parts of the repo (e.g. assets of specific level or one specific asset)
    - Git is a bit slow on large repos (e.g. FTP Game that operates 10 years on the market). I remember we had to strip part of the old history to make git responsive and clone faster (by default git stores entire history)
    Otherwise git is a perfect choice and a good tool. The scale they're talking about is unreachable for most of the devs. Those who needs scale builds it's own version control systems (e.g. Google, Yandex).

    • @-Jason-L
      @-Jason-L Год назад +1

      You can clone without dragging the entire down..

    • @mynameisjeff9124
      @mynameisjeff9124 Год назад

      What are you talking about?! Git lfs is perfect for handling large files and has file locking

  • @yeetdeets
    @yeetdeets Год назад +24

    "strager" made a Bun review. I think you should review his review! He does good videos, and even sets the license on the vids to creative commons :)

    • @wernersmidt3298
      @wernersmidt3298 Год назад

      Yeah, that dude is something else... Gilfoyle irl 😂

  • @bcpeinhardt
    @bcpeinhardt Год назад +8

    YES A compare feature that doesn’t require actually making a pull request. I love the way a diff helps think about the changes you’re making but I don’t want to have to make a request to get one

  • @rocstar3000
    @rocstar3000 Год назад +6

    >be google
    >best tooling in the world
    >can't do a fucking API documentation

    • @MorningNapalm
      @MorningNapalm 7 месяцев назад

      Makes me wonder what tools Apple uses. Apple docs are much better.

  • @jonathanjacobson7012
    @jonathanjacobson7012 Год назад +35

    I remember programming inside a HP-UX hell in 2003 and thinking to myself "what if we could manage software versions through a tool?". Then I found out about RCS and it was even packaged for my OS :) Wait until you hear what I felt when I encountered SVN for the first time! Those were the days.

    • @0x007A
      @0x007A Год назад

      I use RCS for my writing projects and Git for my programming projects. I run my own Gitolite server for Git-managed projects and stopped using GitHub years ago.

    • @LordOfCake
      @LordOfCake Год назад +5

      When I first encountered TortoiseSVN, I thought it was named after a turtle because it was so incredibly slow...

    • @MorningNapalm
      @MorningNapalm 7 месяцев назад +1

      You forgot CVS in between :) Each of these was such a step up. Git too. But it doesn't feel fundamentally different, each generation just fixed some problems from the previous one.

  • @bargeza
    @bargeza Год назад +17

    Google's tools are great, but come with a drawback most devs will consider a non-starter: no development offline

    • @jpratt8676
      @jpratt8676 Год назад +4

      And worse: They're proprietary and not particularly friendly to open source AND the UI is internal only too and separate. So... there's just no way to get it outside

  • @Mel-mu8ox
    @Mel-mu8ox Год назад +19

    "Emotionally hurt me"
    I dont think there has been any software that has not emotionally hurt someone to learn XD

  • @darkee03
    @darkee03 Год назад +9

    "Everybody thinks submodules are going to be good"
    Yes, i was that person once. Wholefully regretted introducing it in one of the projects.

    • @ThePrimeTimeagen
      @ThePrimeTimeagen  Год назад +2

      but there is going to be yet another problem where it just makes sense... and then you hate it

    • @briumphbimbles
      @briumphbimbles Год назад

      No not everybody. Some people got told about them and their first reaction was "why the fuck would anyone want to do that?".

  • @Tony-dp1rl
    @Tony-dp1rl Год назад +8

    He's right about some aspects. Git is terrible once you have many many repos and large binary file dependencies. Git LFS needs to be baked in and improved on. As does multi-repo commands.

  • @stevendorries
    @stevendorries Год назад +7

    2:07 sounds like a skills issue to me
    6:51 internally developed tools are usually janky in some way or another and more brittle than an inch thick layer of rust

  • @Fiercesoulking
    @Fiercesoulking Год назад +12

    There were some pieces there nothing clear but this reminds me what I suggested in my module on the university where were we playing around with git and svn. Wouldn't be cool when the version control system would understand the language I write in ?(10 years ago) The reason was instead of committing files I would commit functions. Which would greatly reduce version conflicts. The prof didn't understood the benefits.
    In the next level you would also track the all global variables and where they came from and auto check them too. Your graphs then also show then the changes on your functions and who did it.
    This certainly need processing power but in theory you can make some kind of auto header file where name ,start and end of the function is in which with each commit gets updated. There is no need to update everything all the time. By the way you also want to support comments otherwise you would end up with what Tom did.

    • @homelessrobot
      @homelessrobot Год назад +2

      well if your dvcs is specific to a programming language, then you have to change your dvcs if you use a different programming language. What you are talking about actually does exist though for a programming language called unision. The code itself in its native form is a sort of structured dcvs. For instance if you reference a variable, a reference to the variable is whats in the code base, not a string representing that reference.
      All of the names are stored separately and in association with the referenced code structure, not the referent code structure. So there is a single source of truth about the relationship between names and the part of your program they symbolize. if you rename a declaration, those changes are automatically propagated to all prior references in the code base and it doesn't actually change the code as stored. The main database only actually cares about structural differences. The names are only used to identify new references in code changes, and to render existing code out for editing.

    • @ped7g
      @ped7g Год назад +1

      IBM had IDE (IDEs?) like that back in 90s, I think I was playing with one for Java, you didn't have to specify file name or file structure, you just added new functions/classes and the IDE automatically exported that into files for compiler creating the file structure on its own. On the tiny exploration projects I did it felt as great idea, but left some bad feel about "this will be total pain when things doesn't work as expected", now with git versioning source files this would probably blow up.
      The real point of this comment is that some thought like this were already tried, if you would pursue this idea and dig into CS history, you could probably find enough stuff to explore for couple of months and to see if there's enough substance to build further in this direction, or there are inherent issues which prevented this tech to pick up. I'm not sure why the IBM thingy was pretty much unknown BITD, I think the commercial price may have been one of stoppers (I got my hands on it as I got it as price in some programming contest), but that wouldn't stop whole industry from adopting the ideas if it was truly great, so there were probably deeper issues? I did play with it only for very limited time, and I don't recall any details any more, sadly.

    • @-Jason-L
      @-Jason-L Год назад

      ​@ped7g yes. Visual age for java. VAJ lol.. I hated it at the time.

  • @markoates9057
    @markoates9057 Год назад +41

    "Hammers are not very intuitive."
    *Hammers self in face*
    "See!!?"

    • @jpratt8676
      @jpratt8676 Год назад +2

      TBF git really has:
      - a lot of inconsistent command line arguments,
      - overlapping commands and subcommands
      - Submodules (as mentioned in the video) are terrible to keep in sync with root repos
      - Branches, tags, commits, merges & rebases do not play well with each other (that's why there's so much written about 'the one true git workflow' etc.).
      - The web interface is feature poor and not 'modern' (which is why github, gitlab, bitbucket etc, all exist)
      - Hooks are painfully limited
      - CI tends to be built separately on top of all of it (because hooks can't do enough, apparently)
      - the internal model used means that a lot of commands over relatively small changes do a lot of upload and download that is part of the scaling issues
      - the internal model scales badly (uses a lot of memory and data for relatively small doc bases)
      I'm sure there's more but it's not really my wheel house, I'm only have a few years of experience with git.

  • @ErikYoungren
    @ErikYoungren Год назад +5

    12:30 I'm right there with you. For me, out of all the SCMs that have been described to me, Git is the best. Maybe that will change in the future, but if you just keep telling me that some piece of software is better then at some point you're going to need to explain the how and the why of it so that I can actually evaluate your opinion.

  • @chadpublic904
    @chadpublic904 9 месяцев назад +1

    I have never resonated more with an opinion more in my life. Git is a unintuitive mess where the basic actions and tasks you do were named without consideration for others. It was almost built to confuse people who want to learn it. What blows my mind is a pull request does ZERO PULLING it's you merging your changes into the main branch (PUSH MAKES MORE SENSE) GAAAAAAAAHHHHHHHHHHH

  • @mekelius
    @mekelius Год назад +3

    I think large part of git's complexity is an inherent consequence of its distributed nature. Why does setting up a remote need to include so many steps? Because git isso much more than "that command you use to push stuff to github", or at least it can be. Version control is a complex problem, distributed version control even more so. Sure the cli could be more intuitive, can't argue with that. I guess the question is, is the distributed model worth the hassle? The way most people use git, I don't know if it is. But on the other hand, being distributed means it can never be truly vendor locked, and it brings incredible flexibility. Like, we're used to having reliable high speed internet. But there might yet come a day when keeping local backups of repos in-house might be something we're damn thankful is a trivial thing to do.

  • @deino4753
    @deino4753 Год назад +9

    "Git is the worst version control system - except for all of the others that have been tried." - Wiston Churchill, maybe

  • @numeritos1799
    @numeritos1799 Год назад +19

    "I worked at Google so I'm right!"

    • @isodoubIet
      @isodoubIet Год назад +4

      "I worked at google by the way"

  • @NathanHedglin
    @NathanHedglin Год назад +48

    GIT is a godsend compared to centralized version control systems especially Microsoft's TFS.
    Visual Studio, not Visual Studio Code, had a horrible integration for years and will constantly break. Of course the Microsoft sheep devs were too stupid to use the command line so they always thought git was just crappy

    • @brunoais
      @brunoais Год назад +1

      I "lost so many hairs" with TFS some years ago. Even when it was obsolete, we were using a certain IDE we were paying license for ONLY to connect and use TFS. Then we did all the actual work on another IDE we paid the licenses for. We complained, low management complained, middle management complained, high management wouldn't budge.
      TFS is basically the M$ embrace and extend of SVN.

    • @brunoais
      @brunoais Год назад

      Git is fine on CLI but there are really good GUI for it. lazygit and Git Extensions comes to mind

    • @Frozander
      @Frozander Год назад +1

      ​@@brunoaisI know people here are not fan of vscode but vscode gui/menus for git are really good.

    • @brunoais
      @brunoais Год назад

      @@Frozander They are nice yes but quite incomplete in what git can do.
      I do use vscodium for now so it's pretty much the same🙂.

    • @isodoubIet
      @isodoubIet Год назад +2

      @@brunoais "They are nice yes but quite incomplete"
      That is fine IMO. CLIs are almost always more feature-rich than GUIs anyway. What I need from a GUI for source control is just an interface for the most common commands and some visualization aids (for diffing, graphs, etc). I'm fine falling back to the CLI for more complex operations.

  • @pharoah327
    @pharoah327 Год назад +5

    "slurp up all the data" 😂 I don't know if I love or hate this wording, lol

  • @isodoubIet
    @isodoubIet Год назад +31

    The main problem with git is that the terminology is off-the-charts bonkers (quick example, you want to undo local changes? git reset --hard HEAD. Wut? Ignore that you know what each of those bits mean for a second, imagine that you're coming at this completely fresh. A "hard reset" sounds like it would nuke the entire repo, but is actually an extremely common operation, if not the most common. Lots of the git "porcelain" has problems like these where the name of the feature seems at odds with what it's actually used for, which helps make the learning curve for using git effectively fairly steep.
    Some of the difficulty is inherent to version control being a "hard problem", but the git UX is really not that great. Another gripe I have with git is that it's very easy to create inscrutable tangles of branches because there's no prescribed structure (see e.g. the merge vs rebase debate). It takes a lot of discipline to keep a history understandable. Again, part of it is inherent to the problem, but is there nothing the tool itself can do to help? I'm unconvinced.
    Saying it needs to die is pretty weird and hyperbolic though.

    • @Martinit0
      @Martinit0 Год назад +9

      Fully agree. It starts with the basics: A "pull request" is when you want to contribute code.

    • @FakeDomi
      @FakeDomi Год назад +11

      @@Martinit0 pull requests are a github thing, not git. and the name describes exactly what's happening: you request someone with write permissions to pull in your changes

  • @gungun974
    @gungun974 Год назад +7

    Git is complex but not awful, lots of repo is not a problem from git. Those guys speak about Github like it’s just a motor to see PR and analysis it. Git is great and for now I didn’t see alternative not a super set of git repository.

  • @RiyadhElalami
    @RiyadhElalami Год назад +6

    This has to be the worst conversation I have ever listened to

  • @SpikeTaunt
    @SpikeTaunt Год назад +14

    I wouldn't say i like git, but it does it's job fine

  • @lowellthoerner1209
    @lowellthoerner1209 Год назад +8

    The main problems with Git from my perspective (hobbyist/student dev) are:
    1. It prefers "quirky" nomenclature over descriptive/intuitive nomenclature.
    2. In a lot of ways, Git does a very bad job of abstracting its "backend" functionality. Ever tried to *git rebase -i* with a nonlinear history? It can't even figure out how to reword commit messages without merge conflicts that if you're not *incredibly* careful will ruin your entire branch history and force you to reset and start the rebase from scratch.
    That being said, I don't personally think I could make anything better, but I do think there are plenty of people who could. Unfortunately Git is too conventional, there will never be another VCS that takes over, at least not in the forseeable future.

    • @RealRatchet
      @RealRatchet Год назад +6

      People obsessed with rebasing is the reason why git is annoying. Just use merge commits, it's more useful to have a true history than "nice" history.

    • @ishi_nomi
      @ishi_nomi Год назад

      I think the root issue is that there are no such "intuitive way" of version controling in general. Git's backend is very simple if you take some time to understand it though.

    • @lowellthoerner1209
      @lowellthoerner1209 Год назад +1

      @RealRatchet What you're describing is an entirely different form of rebasing. What I am talking about is rebasing a branch onto itself, which is used for things like squashing and rewording commits. The reason that people use rebase is not only because they feel it is more "correct," it's because many Git tools do not work properly on a non-linear history.

    • @lowellthoerner1209
      @lowellthoerner1209 Год назад +4

      @JOHN-um2 I once asked some highly-experienced programmers (30+ years of experience, much of it using Git) how to bulk reword my commits and they said "give up and format your commits properly in the future."

    • @isodoubIet
      @isodoubIet Год назад +1

      Yeah rebases and merges interact very poorly

  • @markmywords3817
    @markmywords3817 Год назад +9

    I feel like they're saying: You haven't met our God and savior, Google. Trust me bro. 😅

  • @lionbryce10101
    @lionbryce10101 Год назад +28

    As someone who barely uses GIT... for the most basic use of "you now have an online backup and version history of your code" it's pretty intuitive

  • @dinckelman
    @dinckelman Год назад +24

    Git might have problems, but SVN and Perforce are orders of magnitude worse

    • @gotoastal
      @gotoastal Год назад

      Luckily there are alternatives to those 3

  • @MrJCraft
    @MrJCraft Год назад +3

    currently the most promising vcs I have seen are pijul verifying changes and if I remember correctly undoing a commit will work always. and two Fossil its NOT made for large systems which is why its gaining traction for open source its always synced, and has a UI built in its nice, and is a standalone single executable, which recently I needed for a job I did.
    completely different the Unison programming language has there own version of Git built into the language, guarantees you are using the correct version of each function, and every function is hashed by functionality, its very cool looking and made for distributed programming, even if the language doesnt blow up I hope other languages copy the tech its very interesting.

  • @JesseGilbride
    @JesseGilbride Год назад +4

    Git gets the job done well, but (IMO) the problems are poor syntax (sometimes), too many "alternative" ways to command the same thing, and shitty error reporting. The whole system should get rewritten to use intuitive commands, provide excellent DX, and give deeper error logs that actually tell you what happened when there's a problem.

  • @Raccoon5
    @Raccoon5 Год назад +1

    The guy sounds eerily like Jonathan Blow. Both in vocal aspects, but also how he trashes everything implying that what he is doing is so much better without giving a concrete improvement points. Cynicism + Narcissism at its finest.

  • @bonsairobo
    @bonsairobo Год назад +7

    One issue with mutliple repos (which TBF is not a Git problem) is that making a PR against many repos at once is largely unsupported. Being forced to make synchronized changes to multiple repos is painful.

    • @-Jason-L
      @-Jason-L Год назад +2

      Sounds like poor architecture decisions were made. I don't see this as a git problem

    • @Lttlemoi
      @Lttlemoi 11 месяцев назад

      That means the repos are very badly integrated with one another. Not an issue with git, but an issue with how you organized your source code.

    • @bonsairobo
      @bonsairobo 11 месяцев назад

      @@Lttlemoi It's an issue with GitHUB. How do you propose making a single PR against multiple repos? You can't.

    • @sirhenrystalwart8303
      @sirhenrystalwart8303 9 месяцев назад +1

      This why you use a mono repo like a grown up.

  • @genghisdingus
    @genghisdingus 11 месяцев назад +1

    This guy blinks an absurd amount of times. Literally like every .4 seconds. You can't unsee it.

  • @wolverine9632
    @wolverine9632 Год назад +3

    I am a little too happy that "tree-bucket" could totally be the name of a version control software.

  • @joe-schueller
    @joe-schueller 10 месяцев назад +1

    Many forms of source control have been tried, and will be tried in this world of sin and woe. No one pretends git is perfect or all-wise. Indeed it has been said that git is the worst form of source control except for all those other forms that have been tried from time to time.…
    Winston S Churchill, 11 November 1947

  • @laughingvampire7555
    @laughingvampire7555 Год назад +7

    Git hater: you haven’t used google tools
    Me: how can I, google code was shut down

  • @robonator2945
    @robonator2945 Год назад +1

    4:10
    Valve : Proton
    Valve : Steamdeck
    Valve : Dxvk
    System76 : take your pick
    System76 : take your pick
    System76 : take your pick
    AMD : "fuck you FSR for everyone"
    You *_can_* extrapolate out self interested reasoning for all of this, but at that point I'd take another issue with this claim entirely and say literally no-one has ever "just been really great for no reason" because at the end of the day people do it because they think it's right and get personal satisfaction from doing what they think is the right thing. If you got zero satisfaction from doing the right thing and utterly despised it and got genuinely nothing out of it, you wouldn't do it. If you want to say things like Proton or the Steamdeck or FSR being completely open are self interested then fine, I'll agree with you if this conversation is operating on technicalities, but in that case then this sentiment applies to everyone-and-thing, not just companies.

  • @Grapejellyification
    @Grapejellyification Год назад +5

    I love it when someone can speak for so long and say so little. Maybe the rest of the world would get to where google is at if:
    1. They even know where Google is at, no one seems to actually describe it.
    2. Anyone describes how they got there, no one ever seems to do this either.
    It's nice to long for a better world but if all you ever say is "gee why doesn't anyone do this?" and you are one of the few people that actually knows what they are doing and how then maybe it's up to you to do it?

  • @aurinator
    @aurinator 10 месяцев назад +1

    I loved Perforce on this subject, particularly its P4V GUI utility. Liked it so much I memorized and practiced its keyboard shortcuts. I still remember Ctrl+D to diff changes to individual files in P4V. That is honestly something I've viewed as a step backwards switching over to Git - the lack of similar Keyboard Shortcuts and as straightforward capabilities, instead I have to Command-line diff changes relative to an earlier version because I can't just select 2 in a GUI and then Ctrl+D to Diff the two. Also, I liked Shelve more than Stash because it could be shared without having to Commit, also it's stored Server-side unlike Stash that's not necessarily even available to other users because it's in a User's Local Repo.

  • @sortof3337
    @sortof3337 Год назад +7

    Googles internal tools suck. Goole doesn't get developer platform. They don't even use gcloud themselves.

    • @friendofzeus
      @friendofzeus Год назад

      Can you link me to the articles that explains how google doesnt use gcloud please?

  • @emjizone
    @emjizone Год назад +3

    14:29 For me, this is definitely *not* a versioning problem. It's a pure *indexing* problem.
    I don't see why you can't have _Git_ or anything else for versioning side by side any sort of super-clever IA for indexing, search and diagnostics, working *with or without **_Git_* .
    _Git_ does only one thing and it does it well. If you want more features that have nothing to do with versioning, just build them. Where does it conflict ? I don't know.

    • @emjizone
      @emjizone Год назад

      …unless…
      *Unless **_Google_** don't work with files anymore* and work with *pure atomic relational data* , just like with the alternative file-less, directory-less OS I imagined but never built, and would like to use.
      In that case, if files aren't a thing anymore, yes, I understand why they don't want to bother using a tool like _Git_ that is specifically designed to version files and nothing else.
      Is _Google_ as advanced as what I have in my head since 2005 ? Maybe. I really don't know. I never worked for them and most probably will never be recruited by them, for obvious social reasons.
      If you work or worked for _Google_ , you tell me.

  • @shampoable
    @shampoable Год назад +3

    Company I work at tried to do submodules. It didn't take till the end of the day for it to be scraped lol

  • @bobdouglass8010
    @bobdouglass8010 Год назад +2

    I'd like a version control system that was lsp aware. If two people branch off master, and branch 1 moves a method to another spot within a class, and branch 2 is modifying that method, then someone gets a merge conflict later on. That's 100% avoidable if the diff engine was looking at syntax trees rather than just plain text. And you can take that simple idea and go a lot further with it, recording editing instructions rather than text changes in VCS, but that gets way out there.

    • @bloodgain
      @bloodgain Год назад

      This I agree with. Much of that problem could be handled with an external merge tool, but it would be nice if git had native plugin support, too.

  • @tusharsnn
    @tusharsnn Год назад +4

    I like Gerrit, used by google, for its pull request system. You push the exact code you wrote as a packet and not the whole branch. You can do anything with the branch, for push/rebase/merge different things, they won't make any difference, because it only sees what's new between the main and this branch, and push that piece. they call it patchset.

    • @Ruhrpottpatriot
      @Ruhrpottpatriot Год назад +3

      have you ever tried "git format-patch start..end"? Because that sounds like an aweful lot like git patches.

    • @brendanhansknecht4650
      @brendanhansknecht4650 Год назад

      Gerrit is only used for external/open source Google stuff. Compared to Google internal tools, it is really bad.

    • @y7o4ka
      @y7o4ka Год назад +1

      Sounds really like format-patch and merge --squash

    • @tusharsnn
      @tusharsnn Год назад

      @@Ruhrpottpatriot With Github, you still need to push the whole branch (and everything associated with it, example, logs, commits, rebases) which makes it ugly when you had to redo some things, but it ended up changing the hashes of your old commits that you've already pushed. This would require you to force push the branch and the whole PR thread gets messed up, example reviewers' chats/comments are now above these old commits (having new hashes). There's a awful amount of rules you need to follow to never arrive at a force push situation.
      With Gerrit, you never have to worry about these things. You don't ever get to situation where you would need to force push at all, because you never push the branch! the cli will orangise the changes into a patch on the client and then push it.
      Gerrit also simplies how the reviewers are notified about the new changes. It turns basis. You push the changes, pick the right reviewer, and ask gerrit to send them a notification. Once the reviewer approves the code. YOU merge the changes. No case of pre mature merging, which can happen in github, where "Open" PR doesn't indicate if it's ready to be merge or you are still fixing some bugs (Ofcourse, you can read the whole thread to get a sense whether it's ready or not).
      These are just few examples where Gerrit "way" seems to be better a way of managing PRs.

    • @tusharsnn
      @tusharsnn Год назад

      @@y7o4ka Maybe I'm missing something, but how do you send this patch (made with git-format-patch) to github as a PR so someone could review it and eventually merge it to main?
      Git is not the problem, Github is.

  • @HrHaakon
    @HrHaakon Год назад +1

    It is absolutely wonderful to agree with ThePrimeagen on something.
    And I often agree with Yegge.
    It's a great feeling. Is this what it's like?
    (For context I'm an enterprise (small e) Java developer, who don't hate the language, but also have never had the more insane AbstractFactoryFactoryBean stuff people complain about.)

  • @draakisback
    @draakisback Год назад +10

    I've used Google Piper it's not that great. And this idea they git doesn't scale is just absurd. You don't need to have thousands of repos, and most companies simply don't have that many. It also doesn't help that this guy doesn't really provide any kind of reason why Piper is better than git. There are pros and cons with both tools, and it really depends on how you want to structure your code bases.

    • @fltfathin
      @fltfathin Год назад +1

      agreed, if you have a thousand dependency and they are not packaged then you did something fundamentally wrong

  • @jlr3739
    @jlr3739 Год назад +2

    I’ve used git and perforce. I think git has advantages for programmers, but if you’re working with multiple disciplines, locking files and shelving in p4 is so much better.

  • @tokiomutex4148
    @tokiomutex4148 Год назад +8

    I don't know anyone who worked at Google and praised their internal tooling, only people who don't want to deal with them anymore.

  • @fernandopaiva96
    @fernandopaiva96 Год назад +1

    Git and Github are not the same fucking thing, and this guys is treating them like it.

  • @pohjoisenvanhus
    @pohjoisenvanhus Год назад +4

    So what the dude actually says is that... Git doesn't scale well enough to handle the world's largest codebases. Ok, but for the rest of us who don't have to deal with anything that big Git works just fine. So for me what this dude says is... not relevant at all. Never was.

  • @globalistgamer6418
    @globalistgamer6418 Год назад +1

    At one point somebody says something like "it's the worst option, apart from everything else", which IMO is a completely fair and correct take. There probably isn't an overall better free and general purpose option, but at the same time it feels incredibly sub-par and janky for something that is so widely and prominently used.
    One example: LFS (still) not having branch-scoped locking support makes what should be considered a critical feature of version control virtually unusable. But I don't know of an alternative that implements this properly. SVN, for example, usually prevents this issue from arising in practice, but only by making branching too unwieldy to use in normal circumstances, which is an even worse trade-off.
    I can believe that Google should have the resources to make something better. But the quality of their public APIs makes me skeptical that they actually do.

  • @TheLeafyo
    @TheLeafyo Год назад +10

    Back to banging rocks I guess.

  • @isodoubIet
    @isodoubIet Год назад +2

    If google is so good at understanding large codebases, how come they gave up on fixing memory errors in chrome and decided deliberately leaking memory would be a better idea? The quality of their public code output does not seem consistent with this supposed superpower.

  • @printhelloworld7151
    @printhelloworld7151 Год назад +4

    0:26
    commands like "git checkout" can do something **completely** different depending on the arguments it has, come on man xD this is why software like Gitkraken exists, git's back-end is fine but using it for the CLI can be scary when you are not 100% sure what you're doing (especially with commands like git checkout, which can rewrite the history tree)

    • @ivanheffner2587
      @ivanheffner2587 5 месяцев назад

      Mmmm… I’m gonna need you to show me what options to `git checkout` can “rewrite the history tree”. Yes, there are git commands that can rewrite version history and remove entire subtrees from all history, but those are not `git checkout`.
      Personally, I don’t trust most Git UIs that try to make the details of git actions easier because they frequently don’t do what I want. I am an almost 100% git command line user and prefer being explicit in some “common” commands because not doing so has bitten me at some point in the past.

    • @printhelloworld7151
      @printhelloworld7151 5 месяцев назад

      @@ivanheffner2587 not reading all that. good for u though (or sorry it happened)

  • @josh_finnis
    @josh_finnis Год назад +1

    I wonder if Spotify's Backstage framework is an example of what he is talking about. It's not source control, but it's a discoverable platform for the entire company's repos, projects, documentation, templates, etc. He was referring to the problem of thousands of repos and Spotify seems to have a good solution for it.

  • @paradox2579
    @paradox2579 Год назад +8

    I tried out Fossil because of that video, I like that staging isn't a thing you just commit and it has some useful web tools implemented, but the way it's setup is arguably more awkward than git especially the init process which is suddenly two steps instead of one and for some reason it keeps it's files in two places instead of one like git. Also Fossil is a step backwards for me because Fossil's UI just isn't as great as my current setup of using git + GOGS on my server. It just doesn't deliver on the polish and ease of use like one would hope but it does have some some technical benefits over git in other areas.

    • @brunoais
      @brunoais Год назад +1

      Without staging, does that means you always commit everything?

    • @paradox2579
      @paradox2579 Год назад

      @@brunoais It adds everything by default but you still have the option to manually specify what you want to add. It's mostly just a small nicety.

    • @brunoais
      @brunoais Год назад

      @@paradox2579
      So basically like SVN in that regard.
      It would never work well for me because I usually do much and then I need to split into commits.
      Thanks for the answer.

  • @putnam120
    @putnam120 Год назад +1

    What made Google's scm system good was that you didn't have to git clone a repo with 1B+ lines of code amd tools built ontop of it.
    But most companies aren't that big and use a monorepo.

  • @oliviermb7127
    @oliviermb7127 Год назад +3

    Glad to hear I am not tge only one who doesn't like submodules

  • @AlexandruVoda
    @AlexandruVoda Год назад +1

    Mercurial is significantly more intuitive than Git. But Git won because of GitHubs popularity. Both were improved to scale better than a decade+ ago.
    Besides Fossil and Sapling, there is also Pijul and Jujutsu. I wonder if Jujutsu or something related to it is what he is using since it appears to be developed at Google.

  • @hengrv
    @hengrv Год назад +4

    i really don't think git is bad. but we probably could have a more modern implementation of version control

    • @gotoastal
      @gotoastal Год назад

      Pijul & darcs use patch theory to eliminate a subset of issues with merging. When patch A then B is C & patch B then A is often also C, but Git requires that the order matters giving merge conflicts that shouldn’t cause issues.

  • @dansanger5340
    @dansanger5340 11 месяцев назад

    The first source control program I ever used was Microsoft's Visual SourceSafe. It used a library paradigm: When you want to make a change, you "check out" a file, make a change, and check it back in. When it's checked out, nobody else should check it out to modify it. This paradigm made so much sense to me that it's ruined me for any other source control paradigm. I constantly have to unlearn it when using Git.

  • @FryGuy1013
    @FryGuy1013 Год назад +5

    Git is the javascript of DVCS systems. Bazaar and Mercurial were both better user interfaces but the ecosystem settled on git.
    Github also has the worst history viewer. The whole point of branches and merges is having a visual tree. Having everything flat by default in the history, and burying the tree view in a *horizontal* viewer 3 menus deep where you have to mouse over each dot to see what they are.. Why can't they just have the history just show the history!

  • @etherweb6796
    @etherweb6796 Год назад +1

    This reminds me of that quote about democracy "git is awful, except compared to anything else we've tried"

  • @Mark_MKII
    @Mark_MKII Год назад +7

    Git has like 50 ways to achieve the same result. Different combos of commands, flags, parameters… So many unique ways to make a footgun.

    • @aeggeska1
      @aeggeska1 Год назад +3

      Lol. If you can't figure out .git, how are you a professional?

    • @diadetediotedio6918
      @diadetediotedio6918 Год назад +1

      You mostly only need to use 10 commands in git for the most part, so sincerely just don't try being "the overengineering guy".

    • @briumphbimbles
      @briumphbimbles Год назад +1

      99% of the time you need are a few commands:
      Bread and butter:
      git init
      git add (normally just with .)
      git commit -m "Commit message"
      git reset (often just HEAD~1 to rollback your last changes)
      git push
      git fetch
      git merge/ rebase
      Occasionally useful commands:
      git log
      git stash
      Very rarely you might need something else either to fix a problem by looking into the reflog or do something specific like an octopus merge in your tooling but for the vast majority its just that list above.
      Are you really telling me that its going to take you a long time to learn

  • @azagogh
    @azagogh Год назад +1

    Just imagine the Google employees, floating around in their spheres of crystalline neon glass, creating the code of the future by the flick of a hand, so that we can see the perfect embodiment of stupidity in the next NFT or daytrading or quack philosophy master class ad for 4 seconds before we click on to the next video to mindlessly consume. What a time to be alive.

  • @bitskit3476
    @bitskit3476 Год назад +2

    I think that the reason why git seems complicated is because it's actually like, 4+ different tools rolled into one.
    On one hand, it's serves the purpose of revision control. The management of a singular timeline, to which you can commit changes, revert them, or reset to an earlier point in time.
    Secondarily, it serves the purpose of version control. In this case, you have multiple different versions of the same project. When built on top of revision control, each version of the project has some sort of shared history, with the others, but effectively branches off into it's own timeline that's completely adjacent to the others. Combining two versions requires their timelines to be merged, which can be done by replaying all the changes that have been made since the moment the timelines forked from each other, i.e. re-basing the changes on a different version of the code, or by simplying squashing all of the changes into one single change that can be applied, i.e. git merge.
    Thirdly, git serves the purpose of interfacing with a distributed system. The ability to specifiy the origin of a repository and push changes to it or pull them down. It's this push and pull system that coordinates everyone with each other.
    N-thly, git just a bunch of other arbitrary crap that's highly specific. Stashing changes and reverting, tracking which files have changed since the last commit, figuring out who screwed up what, creating and applying patches, etc.
    Tbh, git is a lot closer to being a source code control system than a version control system.

  • @agtugo9197
    @agtugo9197 Год назад +1

    He explained nothing. The art of not saying anything for 5 minutes, just explain why git is bad.

  • @JoseAyerdis
    @JoseAyerdis Год назад +3

    This guy never worked with TFVC, another brillian microsoft idea hahaha!

  • @farqis
    @farqis Год назад +1

    What he is hinting at is "mono-repo" + "trunk based development" at global scale. The reason he's not saying much seems to be that he wants to or is already developing something for it and doesn't want to let others in on the problems and solutions.
    Any real world project that has to work at scale has too many repos to manage, especially if many separate teams are doing it. Repos depending on each other complicates things further! So companies like Google (and Facebook) have developed tools to manage all the code as a mono-repo and follow trunk-based development.

    • @isodoubIet
      @isodoubIet Год назад

      trunk based development is great until you get power pegged

  • @MRxParkour
    @MRxParkour Год назад +4

    TortoiseGit also exists

  • @bbsara0146
    @bbsara0146 14 дней назад

    I love how every senior engineer is literally set in their ways, extremely rigid and all have their own quirks. My old boss said its easier to have a team of clueless juniors develop stuff than like 5 senior engineers who are all set in their ways and dig in their heels

  • @marcandruu
    @marcandruu Год назад +12

    The problem doesn't seem like it's about git, but more of a software deployment problem

  • @TOAOGG
    @TOAOGG Год назад

    How they talk to eachother....just really reminds me of a joe rogan episode where the guest tells joe that he saw aliens and they are going to harvest us

  • @PhilfreezeCH
    @PhilfreezeCH Год назад +7

    Personally I feel like Git is extremely good from a technical (behind the scenes) aspect but its frontend (the commands) are a god damn mess. There are so many ways to do the same thing, none if them makes sense for a first time user. The terminology only makes somewhat sense if you understand a bit how it all works and very common cases are confusing as hell (you git add a file you just deleted, what?)
    Dangerous commands are a few flags away from really helpful ones (hard vs soft reset the last commit) and many mores issues.
    I feel like someone should just write and actually useful somewhat interactive wrapper for git.
    Ideally it should be approachable for non software devs like various engineers, office workers and so on with some technical skill. Best case you actually have a GUI application where you can draw the changes you want in the usual graph tree and then it does that via commands in the background.

    • @HinaraT
      @HinaraT Год назад +2

      Except its very complicated, git is really good for text files, but does not know how to merge blob, so it is useless for office worker and engineers,
      Office worker tend to used the integrated version history if there is one,
      Engineers/Artist I suppose tend to send copy of their work as you need a software or use some kind of dependency system if available and compose things by the end (ex: Blender / Unity)
      So to be fair Git is almost only usefull on codebases as most CVS.
      Maybe extending git fonctionnality via some kind of plugin to be able to deal better with those "blobs" might make things easier but yeah, I was confused almost all the way along because the guy in the video does not seem to be able to make the difference between git and github, especially since even Chromium codebase use Git

    • @Yay295
      @Yay295 Год назад

      What you want is TortoiseGit.

    • @isodoubIet
      @isodoubIet Год назад +2

      @@HinaraT "the guy in the video does not seem to be able to make the difference between git and github"
      ... yep, you nailed it. That's exactly why what he's saying sounds so incoherent. He says git, but he means github. He contrasts the supposed google tools that make you coffee and rub your balls with git, but what he really means is github.

  • @zeocamo
    @zeocamo Год назад +1

    Next week: Prime start at Google, playing with google tools for 2 days.
    the following week: Prime join TJ, and cry about GIT and other tools for the next year.

  • @PereViader
    @PereViader Год назад +12

    The only critique I have for git is that it promotes companies to create multiple repos for stuff that could just be monorepos.
    If hit had a better submodule / subtree workflow I think git would be perfect.
    Monorepos ❤

    • @RaZziaN1
      @RaZziaN1 Год назад +1

      No one uses submodules, at least in real life.

    • @PereViader
      @PereViader Год назад +1

      I've used submodules in the last 2 companies 🐿️

    • @N0FPV
      @N0FPV Год назад +1

      Honestly with the way CI/CD tools work, I much prefer single repo per service container.
      Mono repos force you to make assumptions about the other services, but if they were so similar they should just be a monolith, not multiple services in the same repo.

  • @Jack9C
    @Jack9C Год назад +2

    SVN was WAY more intuitive than Git. It was a simpler tool. An insufficient tool, but simpler nonetheless.

  • @tcurdt
    @tcurdt Год назад +3

    That interview feels like a xkcd as a video. This better be satire.

  • @mauritoxway
    @mauritoxway 5 месяцев назад

    man, ive discovered your videos a littel while ago, and i love you, svn hurt you, and also me, i feel you bro