Git Is Awful | Prime Reacts

  Рет қаралды 197,272

ThePrimeTime

ThePrimeTime

9 ай бұрын

Recorded live on twitch, GET IN
/ theprimeagen
Reviewed video: • Git is awful. GitHub i...
Channel: Changelog | / @changelog
MY MAIN YT CHANNEL: Has well edited engineering videos
/ theprimeagen
Discord
/ discord
Have something for me to read or react to?: / theprimeagenreact
Hey I am sponsored by Turso, an edge database. I think they are pretty neet. Give them a try for free and if you want you can get a decent amount off (the free tier is the best (better than planetscale or any other))
turso.tech/deeznuts

Пікірлер: 1 100
@icedtonberry
@icedtonberry 9 ай бұрын
This fellow said a lot without really saying anything at all.
@isaac_shelton
@isaac_shelton 9 ай бұрын
i worked at google btw, you wouldn't understand
@flynn3649
@flynn3649 9 ай бұрын
​@@isaac_shelton I worked at understand btw, you wouldn't google
@monad_tcp
@monad_tcp 9 ай бұрын
He's good to work at a PR department of google.
@anandmahamuni5442
@anandmahamuni5442 9 ай бұрын
Bro be like skill issue
@DaLoler1
@DaLoler1 9 ай бұрын
All I got from this is "Google has better tools, trust me bro"
@tusharsnn
@tusharsnn 9 ай бұрын
They do. Just look at chromium repo.
@exit81dave
@exit81dave 9 ай бұрын
He said nothing. It may be awesome but he said absolutely nothing.
@oleg4966
@oleg4966 9 ай бұрын
You want a better VCS? I can get you a VCS, believe me. There are ways, Dude.
@piotrdoan3784
@piotrdoan3784 9 ай бұрын
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 9 ай бұрын
like gn and repo 🤷‍♂️
@robertharris4129
@robertharris4129 9 ай бұрын
"git is terrible, google's tools are like science fiction compared to the rest of the world!" *refuses to elaborate* *leaves*
@Sammysapphira
@Sammysapphira 9 ай бұрын
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 9 ай бұрын
ever tried using anything from GCP ? I bet he's lying
@notuxnobux
@notuxnobux 9 ай бұрын
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 9 ай бұрын
​@@monad_tcp I've tried AWS, Azure & Oracle, I don't think they're any better.
@seanlestermiranda
@seanlestermiranda 9 ай бұрын
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 9 ай бұрын
Git is the reason why our -10x engineer can’t do permanent damage to our build system
@MrEnsiferum77
@MrEnsiferum77 9 ай бұрын
This is terrible explanation, just go back to 90's how they shipped games without tools like git.... without any versioning system...
@vitalyl1327
@vitalyl1327 9 ай бұрын
​@@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 9 ай бұрын
​@@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 9 ай бұрын
... being a professional coder is already.. being damaged. what's ur point ?
@karmatraining
@karmatraining 9 ай бұрын
@@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 9 ай бұрын
He never really gave any reason why Git is bad. He just said it was bad and they decided he was right.
@Endelin
@Endelin 9 ай бұрын
Yeah, it seemed like he meant to say just Github, but said Git too and rolled with it.
@luvincste
@luvincste 9 ай бұрын
ha said it's unintuitive etc, and i agree
@Cranked1
@Cranked1 9 ай бұрын
@@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 9 ай бұрын
@@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.
@Flamingskullkid
@Flamingskullkid 9 ай бұрын
​@@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.
@SiimKoger
@SiimKoger 9 ай бұрын
I don't trust people who don't explain their opinion. Idc how accomplished the person is if they just say "It's better. Full stop." then they just come off as "I'm going to show off to those peasants listening to me (because 99% of them aren't capable of arguing against me) so that they would think I am a secretive hidden genius and that rises my ego."
@Ringoshiiro
@Ringoshiiro 9 ай бұрын
Agreed
@khatdubell
@khatdubell 9 ай бұрын
Ah, but have you tried google's tools?
@rafaelbordoni516
@rafaelbordoni516 9 ай бұрын
I feel like the other guys talking to him didn't ask him enough, but maybe he would be willing to explain things better.
@lefterisvatsithianos6755
@lefterisvatsithianos6755 9 ай бұрын
Except Tom , Tom is a genius either way.
@paradox2579
@paradox2579 9 ай бұрын
People who blindly say something is worse but can't explain their reasoning tend to be heavily biased, they are basing their opinions off of emotions or self interest instead of logic.
@samfelton5009
@samfelton5009 9 ай бұрын
Git is the only technology I use that I don’t hate and now you want to take it from me 😭
@voidwalker7774
@voidwalker7774 9 ай бұрын
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 9 ай бұрын
Magit for Emacs makes Git intuitive and understandable
@Frozander
@Frozander 9 ай бұрын
​@@IrizarryBrandongit is not unintuitive for me. I never understood the "unintuitive" argument
@IrizarryBrandon
@IrizarryBrandon 9 ай бұрын
@@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 9 ай бұрын
I'm gonna guess you work on Ruby on Rails
@tc2241
@tc2241 9 ай бұрын
Felt more like a career flex than any actual valid points
@pepsiplease69
@pepsiplease69 7 ай бұрын
That's exactly what it was.. Sadly.
@evg3nius
@evg3nius 5 ай бұрын
That's just cause you never used google tools 😆
@bilbobeutlin3405
@bilbobeutlin3405 9 ай бұрын
If Google's internal documentation is so good, why are all the public docs so awful 😞
@upsxace
@upsxace 9 ай бұрын
ikr? Their documentation is an abomination.
@isodoubIet
@isodoubIet 9 ай бұрын
If google's ability to understand large codebases is so good, why is chrome such a steaming pile of dung?
@foxadee
@foxadee 9 ай бұрын
​@@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 8 ай бұрын
@@rutabega306Lots of people use a steaming pile of dung, yes. It's truly a terrible browser.
@Thect
@Thect 9 ай бұрын
Tom have a perfect versioning system, much better than Google's tool and git, he's a genius
@johnnycochicken
@johnnycochicken 9 ай бұрын
Tom is the best SVN user
@ninocraft1
@ninocraft1 9 ай бұрын
​@@johnnycochickenthe *last xD
@iggytt
@iggytt 9 ай бұрын
Google obsession is not a mark of a useful software developer.
@Ringoshiiro
@Ringoshiiro 9 ай бұрын
💯
@colemichae
@colemichae 9 ай бұрын
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
@thingsiplay
@thingsiplay 9 ай бұрын
Git does not scale? How on earth are the Linux devs working with Git?
@SolarShado
@SolarShado 9 ай бұрын
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 9 ай бұрын
Very true
@danielsan901998
@danielsan901998 9 ай бұрын
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 9 ай бұрын
@@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 9 ай бұрын
​@@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.
@embedded_software
@embedded_software 9 ай бұрын
The real question is: whose fault is it that you have 100k repos? That's insane
@sullivan3503
@sullivan3503 9 ай бұрын
As of 2021, they have 140,000 employees. It's not surprising at all that they would have 100,000 repos.
@metznoah
@metznoah 9 ай бұрын
​@@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
@lollol012
@lollol012 9 ай бұрын
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.
@makesnosense6304
@makesnosense6304 9 ай бұрын
This is yet again someone that can't think properly and blame git for the usage of it.
@MichaelButlerC
@MichaelButlerC 9 ай бұрын
It's not git's fault that's for sure.
@ankitsanghi
@ankitsanghi 9 ай бұрын
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 9 ай бұрын
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 9 ай бұрын
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 9 ай бұрын
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 4 ай бұрын
So what the hell it has to do with git itself?
@coolxy2
@coolxy2 13 сағат бұрын
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
@korzinko
@korzinko 9 ай бұрын
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 9 ай бұрын
@@katrinabryce npm is hard, so I copy-paste all the dependencies in one file
@zheil9152
@zheil9152 9 ай бұрын
@@korzinkoah. The ol manual esbuild
@phitc4242
@phitc4242 9 ай бұрын
​@@katrinabrycejs sucks ass biggest piece of shit software ok thx bye
@maelstrom57
@maelstrom57 9 ай бұрын
@@katrinabryce You don't commit dependencies.
@Whatthetrash
@Whatthetrash 9 ай бұрын
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)
@Mglunafh
@Mglunafh 9 ай бұрын
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--. 9 ай бұрын
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 4 ай бұрын
​@@x--.If it was that good they'd be selling it
@ChrisCarlos64
@ChrisCarlos64 9 ай бұрын
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.
@Muaahaa
@Muaahaa 9 ай бұрын
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.
@opensourcedev22
@opensourcedev22 9 ай бұрын
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.
@arafatzahan3697
@arafatzahan3697 9 ай бұрын
He would most likely be fired
@sirhenrystalwart8303
@sirhenrystalwart8303 9 ай бұрын
This guy is completely incoherent. His argument for why git sucks is basically just making guttural icky noises. Onomatopoeia is not an argument.
@DePhoegonIsle
@DePhoegonIsle 9 ай бұрын
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.
@julkiewicz
@julkiewicz 9 ай бұрын
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 9 ай бұрын
I read that Google uses a giant monorepo.
@NameUserOf
@NameUserOf 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.
@markoates9057
@markoates9057 9 ай бұрын
"Hammers are not very intuitive." *Hammers self in face* "See!!?"
@jpratt8676
@jpratt8676 7 ай бұрын
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.
@helviett
@helviett 9 ай бұрын
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 8 ай бұрын
You can clone without dragging the entire down..
@mynameisjeff9124
@mynameisjeff9124 7 ай бұрын
What are you talking about?! Git lfs is perfect for handling large files and has file locking
@bargeza
@bargeza 9 ай бұрын
Google's tools are great, but come with a drawback most devs will consider a non-starter: no development offline
@jpratt8676
@jpratt8676 7 ай бұрын
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
@yeetdeets
@yeetdeets 9 ай бұрын
"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 9 ай бұрын
Yeah, that dude is something else... Gilfoyle irl 😂
@bcpeinhardt
@bcpeinhardt 9 ай бұрын
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
@Mel-mu8ox
@Mel-mu8ox 9 ай бұрын
"Emotionally hurt me" I dont think there has been any software that has not emotionally hurt someone to learn XD
@jonathanjacobson7012
@jonathanjacobson7012 9 ай бұрын
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 9 ай бұрын
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 9 ай бұрын
When I first encountered TortoiseSVN, I thought it was named after a turtle because it was so incredibly slow...
@MorningNapalm
@MorningNapalm 2 ай бұрын
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.
@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 9 ай бұрын
but there is going to be yet another problem where it just makes sense... and then you hate it
@numeritos1799
@numeritos1799 9 ай бұрын
"I worked at Google so I'm right!"
@isodoubIet
@isodoubIet 9 ай бұрын
"I worked at google by the way"
@Tony-dp1rl
@Tony-dp1rl 9 ай бұрын
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.
@Fiercesoulking
@Fiercesoulking 9 ай бұрын
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 9 ай бұрын
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 9 ай бұрын
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 8 ай бұрын
​@ped7g yes. Visual age for java. VAJ lol.. I hated it at the time.
@NathanHedglin
@NathanHedglin 9 ай бұрын
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 9 ай бұрын
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 9 ай бұрын
Git is fine on CLI but there are really good GUI for it. lazygit and Git Extensions comes to mind
@Frozander
@Frozander 9 ай бұрын
​@@brunoaisI know people here are not fan of vscode but vscode gui/menus for git are really good.
@brunoais
@brunoais 9 ай бұрын
@@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 9 ай бұрын
@@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.
@Mark_MKII
@Mark_MKII 9 ай бұрын
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 9 ай бұрын
Lol. If you can't figure out .git, how are you a professional?
@diadetediotedio6918
@diadetediotedio6918 9 ай бұрын
You mostly only need to use 10 commands in git for the most part, so sincerely just don't try being "the overengineering guy".
@stevendorries
@stevendorries 9 ай бұрын
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
@ErikYoungren
@ErikYoungren 9 ай бұрын
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.
@markmywords3817
@markmywords3817 9 ай бұрын
I feel like they're saying: You haven't met our God and savior, Google. Trust me bro. 😅
@lionbryce10101
@lionbryce10101 9 ай бұрын
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
@deino4753
@deino4753 9 ай бұрын
"Git is the worst version control system - except for all of the others that have been tried." - Wiston Churchill, maybe
@dinckelman
@dinckelman 9 ай бұрын
Git might have problems, but SVN and Perforce are orders of magnitude worse
@gotoastal
@gotoastal 9 ай бұрын
Luckily there are alternatives to those 3
@mauritoxway
@mauritoxway 9 күн бұрын
man, ive discovered your videos a littel while ago, and i love you, svn hurt you, and also me, i feel you bro
@isodoubIet
@isodoubIet 9 ай бұрын
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 8 ай бұрын
@@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
@JOHN-um2
@JOHN-um2 9 ай бұрын
sounds like a skill issue
@lowellthoerner1209
@lowellthoerner1209 9 ай бұрын
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.
@JOHN-um2
@JOHN-um2 9 ай бұрын
skill issue
@RealRatchet
@RealRatchet 9 ай бұрын
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 9 ай бұрын
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 9 ай бұрын
@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 9 ай бұрын
@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."
@genghisdingus
@genghisdingus 6 ай бұрын
This guy blinks an absurd amount of times. Literally like every .4 seconds. You can't unsee it.
@SpikeTaunt
@SpikeTaunt 9 ай бұрын
I wouldn't say i like git, but it does it's job fine
@MrJCraft
@MrJCraft 9 ай бұрын
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.
@gungun974
@gungun974 9 ай бұрын
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.
@bonsairobo
@bonsairobo 9 ай бұрын
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 8 ай бұрын
Sounds like poor architecture decisions were made. I don't see this as a git problem
@Lttlemoi
@Lttlemoi 6 ай бұрын
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 6 ай бұрын
@@Lttlemoi It's an issue with GitHUB. How do you propose making a single PR against multiple repos? You can't.
@sirhenrystalwart8303
@sirhenrystalwart8303 4 ай бұрын
This why you use a mono repo like a grown up.
@mekelius
@mekelius 9 ай бұрын
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.
@wolverine9632
@wolverine9632 9 ай бұрын
I am a little too happy that "tree-bucket" could totally be the name of a version control software.
@TheLeafyo
@TheLeafyo 9 ай бұрын
Back to banging rocks I guess.
@Ringoshiiro
@Ringoshiiro 9 ай бұрын
And happily at that :)
@JesseGilbride
@JesseGilbride 9 ай бұрын
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.
@sortof3337
@sortof3337 9 ай бұрын
Googles internal tools suck. Goole doesn't get developer platform. They don't even use gcloud themselves.
@friendofzeus
@friendofzeus 9 ай бұрын
Can you link me to the articles that explains how google doesnt use gcloud please?
@shampoable
@shampoable 9 ай бұрын
Company I work at tried to do submodules. It didn't take till the end of the day for it to be scraped lol
@laughingvampire7555
@laughingvampire7555 9 ай бұрын
Git hater: you haven’t used google tools Me: how can I, google code was shut down
@touristtam
@touristtam 9 ай бұрын
be happy?
@nnzrmn
@nnzrmn 5 ай бұрын
I truly enjoy your videos! Greetings from DR.
@aurinator
@aurinator 5 ай бұрын
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.
@MRxParkour
@MRxParkour 9 ай бұрын
TortoiseGit also exists
@draakisback
@draakisback 9 ай бұрын
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 9 ай бұрын
agreed, if you have a thousand dependency and they are not packaged then you did something fundamentally wrong
@HrHaakon
@HrHaakon 9 ай бұрын
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.)
@bobdouglass8010
@bobdouglass8010 8 ай бұрын
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 8 ай бұрын
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.
@emjizone
@emjizone 9 ай бұрын
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 9 ай бұрын
…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.
@tusharsnn
@tusharsnn 9 ай бұрын
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 9 ай бұрын
have you ever tried "git format-patch start..end"? Because that sounds like an aweful lot like git patches.
@brendanhansknecht4650
@brendanhansknecht4650 9 ай бұрын
Gerrit is only used for external/open source Google stuff. Compared to Google internal tools, it is really bad.
@y7o4ka
@y7o4ka 9 ай бұрын
Sounds really like format-patch and merge --squash
@tusharsnn
@tusharsnn 9 ай бұрын
@@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 9 ай бұрын
@@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.
@nchomey
@nchomey 9 ай бұрын
Could you do a video on submodules? I'm pretty new to git, and have been happily using submodules. Surely there's stuff I'm missing, but surely there's also valid use cases
@Murderbits
@Murderbits 4 ай бұрын
That guy suffers a major case of "not invented here".
@Grapejellyification
@Grapejellyification 9 ай бұрын
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?
@printhelloworld7151
@printhelloworld7151 9 ай бұрын
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 22 күн бұрын
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 21 күн бұрын
@@ivanheffner2587 not reading all that. good for u though (or sorry it happened)
@isodoubIet
@isodoubIet 9 ай бұрын
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.
@jlr3739
@jlr3739 8 ай бұрын
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.
@madtrade
@madtrade 9 ай бұрын
git is so shit that there is a 'git man page generator' website and almost all of the commands generated look credible
@y7o4ka
@y7o4ka 9 ай бұрын
Just use the web guide
@paradox2579
@paradox2579 9 ай бұрын
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 9 ай бұрын
Without staging, does that means you always commit everything?
@paradox2579
@paradox2579 9 ай бұрын
@@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 9 ай бұрын
@@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.
@MegaMech
@MegaMech 9 ай бұрын
submodules is good if you have like four of them and they are reliable enough you never have to touch them.
@aaronevans6442
@aaronevans6442 9 ай бұрын
Submodules are the right idea for the wrong product. The implementation is bad because git is bad. And they're only needed because git can't handle inter-product dependencies or nested projects.
@dansanger5340
@dansanger5340 6 ай бұрын
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.
@RiyadhElalami
@RiyadhElalami 9 ай бұрын
This has to be the worst conversation I have ever listened to
@hen_gr
@hen_gr 9 ай бұрын
i really don't think git is bad. but we probably could have a more modern implementation of version control
@gotoastal
@gotoastal 9 ай бұрын
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.
@zeocamo
@zeocamo 9 ай бұрын
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.
@blazinghellwheels
@blazinghellwheels 9 ай бұрын
Primeagen, watch any of Steve Yegges Grok talk about code indexing. He literally wrote one of googles craziest tools and he goes into pretty decent detail on almost every aspect
@oliviermb7127
@oliviermb7127 9 ай бұрын
Glad to hear I am not tge only one who doesn't like submodules
@spyroninja
@spyroninja 9 ай бұрын
Git gud
@wertigon
@wertigon 9 ай бұрын
$ git gud git: 'gud' is not a git command. See 'git --help'. The most similar command is add
@touristtam
@touristtam 9 ай бұрын
@@wertigonyou need to alias that duh? :D
@OGStan01
@OGStan01 9 ай бұрын
I once tried to screw in a screw using a hammer and I have to say: boy do hammers just suuuuck, they're horrible, unintuitive and honestly they just don't scale well, the bigger the hammer, the worse it is at screwing in screws.
@josh_finnis
@josh_finnis 9 ай бұрын
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.
@tokiomutex4148
@tokiomutex4148 9 ай бұрын
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.
@JonathanTheZombie
@JonathanTheZombie 9 ай бұрын
“How do we manage 100,000 git repos??” How about git submodules?
@y7o4ka
@y7o4ka 9 ай бұрын
How about not creating a submodule for each file in a project 🤔
@homelessrobot
@homelessrobot 9 ай бұрын
that doesn't manage the repos, it just associates them with each other. They still have to be independently managed. The way you normally do this if you actually want to maintain an in tree copy of what may have started off as a separate repo, while still maintaining upstream history, is git subtree. Probably doesn't scale to a 1000 subtree project with 10 jiggawatts of history in each.
@alienrenders
@alienrenders 4 ай бұрын
Oh god no. Not submodules.
@alexandrustefanmiron7723
@alexandrustefanmiron7723 9 ай бұрын
Best Interface and conceptual dvcs is CM Synergy! Slow, expensive, but God damn, best in class for making releases our of multiple teams. Maybe I should try to have some sort of UI on top of git that would emulate that!
@protocol6
@protocol6 8 ай бұрын
Anyone remember the movie Antitrust (2001)? Rachel Leigh Cook, Ryan Phillippe, Tim Robbins, Claire Forlani. Tim Robbins basically plays a Bill Gates character and Ryan Phillippe is an indie developer and the whole story revolves around spying, code theft and murder by the corporate baddie. It's so much easier just to market your source control system at people.
@bitskit3476
@bitskit3476 9 ай бұрын
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.
@blenderpanzi
@blenderpanzi 9 ай бұрын
Mercurial has a bit nicer UX (thinking back many years when I last used it), but it's very similar to git in a lot of respects and it's written in Python. Though I think they replaced parts with Rust now? Was it Rust?
@d3stinYwOw
@d3stinYwOw 9 ай бұрын
Mercurial at least does not allow easily to shit in your history
@monad_tcp
@monad_tcp 9 ай бұрын
Ironically I think git is shit compared to mercurial, but I switched from mercurial in 2019 because git has a good support for big binary files (*1), also it was too slow because it was written in python. Now that it's rewritten in Rust I might go back to mercurial. (*1 yes, I store binary files, its machine learning models, its "code" that runs the application, so it goes together with , process me )
@y7o4ka
@y7o4ka 9 ай бұрын
​@@monad_tcptry out git-lfs in your spare time. It's kinda like git, but for binaries 😅
@d3stinYwOw
@d3stinYwOw 9 ай бұрын
To be honest, I'd pick mercurial even without RIIR (Rewriting it in Rust) @@monad_tcp
@monad_tcp
@monad_tcp 7 ай бұрын
@@y7o4ka gonna try
@velorama-tkkn
@velorama-tkkn 8 ай бұрын
Ever worked with IMS Source? Every subdirectory there is a subproject by default. Every subproject can be cloned (to use git vocabulary) into a local sandbox which you can push from. Subprojects can also be shared into other subprojects easily. This is a big advantage on huge buil trees where ownership of small modules (represented as a subdirectory) is distributed across a large number of developers. And because of sharing, built trees can be freely assembled from modules while simultaneously having the configuration of a tree for a given build stored in a CMS without copying any data around (sharing a subproject only creates a reference). I'm pretty much a git noob, but from what i understand: for git you either create a huge number of repositories with wrappers for that (that would also need to push an assembled tree into a repo and creating a copy in the process), create a ton of submodules or every developer always needs to clone a large repository to work on a small module that is about 1:1000 times the size of the whole tree. This may be what was meant by "git doesn't scale".
@globalistgamer6418
@globalistgamer6418 8 ай бұрын
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.
@JoseAyerdis
@JoseAyerdis 9 ай бұрын
This guy never worked with TFVC, another brillian microsoft idea hahaha!
@c64cosmin
@c64cosmin 9 ай бұрын
cough... skill issue ...cough...
@rocstar3000
@rocstar3000 9 ай бұрын
>be google >best tooling in the world >can't do a fucking API documentation
@MorningNapalm
@MorningNapalm 2 ай бұрын
Makes me wonder what tools Apple uses. Apple docs are much better.
@RishabhDeepSingh
@RishabhDeepSingh 9 ай бұрын
Google’s infrastructure is setup in a way that works best for google and google only. helping in adding different dependencies from different products and collaborating between different teams. Not only limiting to products but also to different tools for logging, monitoring, alerting, etc. Its just 1 click setup. its soo much easier to do all of these things and not to have worry about accesses and all. Its soo soo Goooood. Also google uses mercurial internally so that all of those repos lives at one place and builds can be soo much faster.
@skrypets
@skrypets 9 ай бұрын
I heard FTP is the best VCS
@BurgerKingHarkinian
@BurgerKingHarkinian 9 ай бұрын
Together with folders like project, project-final, project-final-final, project-release
@HolgerNestmann
@HolgerNestmann 9 ай бұрын
email is not bad either
@ashindachu
@ashindachu 9 ай бұрын
You missed Text/SMS
@Yay295
@Yay295 9 ай бұрын
@@HolgerNestmann Git supports email.
@PhilfreezeCH
@PhilfreezeCH 9 ай бұрын
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.
@TheRobbix1206
@TheRobbix1206 9 ай бұрын
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 9 ай бұрын
What you want is TortoiseGit.
@isodoubIet
@isodoubIet 9 ай бұрын
@@TheRobbix1206 "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.
@azagogh
@azagogh 8 ай бұрын
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.
@jeezusjr
@jeezusjr 9 ай бұрын
Everyone tries to hide their backdoors!
Git Flow is Bad | Prime Reacts
34:31
ThePrimeTime
Рет қаралды 249 М.
Being An Efficient Developer | Prime Reacts
22:56
ThePrimeTime
Рет қаралды 148 М.
Khó thế mà cũng làm được || How did the police do that? #shorts
01:00
터키아이스크림🇹🇷🍦Turkish ice cream #funny #shorts
00:26
Byungari 병아리언니
Рет қаралды 27 МЛН
⬅️🤔➡️
00:31
Celine Dept
Рет қаралды 50 МЛН
Why We Left The Cloud
15:42
ThePrimeTime
Рет қаралды 151 М.
Github Has A SERIOUS Problem | Prime Reacts
19:04
ThePrimeTime
Рет қаралды 82 М.
Prime React: Fast Inverse Square Root - A Quake III Algorithm
30:19
ThePrimeTime
Рет қаралды 148 М.
Reddit is Charging WHAT For Their API???
37:04
ThePrimeTime
Рет қаралды 98 М.
So You Think You Know Git - FOSDEM 2024
47:00
GitButler
Рет қаралды 1 МЛН
Why I Quit Netflix
7:11
ThePrimeagen
Рет қаралды 487 М.
Getting Hired At Big Tech or FAANG | Prime Reacts
42:42
ThePrimeTime
Рет қаралды 124 М.
The Truth About HTMX | Prime Reacts
49:56
ThePrimeTime
Рет қаралды 350 М.
Why I Got Fired JR Dev | Prime Reacts
19:33
ThePrimeTime
Рет қаралды 172 М.
Main filter..
0:15
CikoYt
Рет қаралды 12 МЛН
Ждёшь обновление IOS 18? #ios #ios18 #айоэс #apple #iphone #айфон
0:57
Will the battery emit smoke if it rotates rapidly?
0:11
Meaningful Cartoons 183
Рет қаралды 33 МЛН
Игровой Комп с Авито за 4500р
1:00
ЖЕЛЕЗНЫЙ КОРОЛЬ
Рет қаралды 1,2 МЛН