Blakeyxkcd and the years and years of struggling with broken software that just so happens to use git
-
Fuck the users.
Developers that struggle to use a CLI should not be developers, or near a computer, or within a 5 mile radius of an elementary school.
-
git needs command line, anything else will simply give you headache.
As much as I like your rants, it will not change a thing. I wish git had better (more intuitive) commands so I could deduce what is right instead of Google it all the time, but there it is you have to use CLI and you have to use Google.
Also when in doubt, always make a branch, then you will know how to undo everything just by checking out that branch name.
-
@blakeyrat said:
So Bob spends 2 weeks editing "2015 forecast.xlsx". Two days after he starts, Sally begins her edits to "2015 forecast.xlsx" and it takes her two weeks as well. Now we merge.
Actually, this is good, because now two people have done the work and if the work differs in any way you know immediately that one of them messed up. If only one person did the work, you'd have no idea.... oops! I have to pick EITHER Bob or Sally's version! Which means, no matter what, OUR COMPANY JUST WASTED TWO ENTIRE WEEKS OF LABOR BECAUSE OF ITS SHITTY BROKEN SOURCE CONTROL PRODUCT.
But you're ok with that. Because you're a fucking idiot who hasn't ever used anything besides Git and has NO FUCKING CLUE.
Maybe it's just me, but don't most companies do things like assign specific tasks to employees? If they did things like "be a manager" and "delegate" (which have been proven to be effective at distributing workload across groups of people) then maybe they wouldn't have to worry about having many people do the same thing at once, unaware that someone else is also working on said task. Maybe it's the company's fault for relying on software that isn't designed to manage employees to manage their employees.
-
When this happens, neither prevents you from simply pushing the commit up the chain and breaking everything, EVEN THOUGH THE COMMIT STILL CONTAINS THE MERGE MARKERS.
You should never use a hammer because it lets you hit your fingers instead of the nail. Stupid piece of shit tool !
If only computers would not do what you tell them to
-
It has worked every time I've done it?
Look. It's simple. Those commit comments haven't been put on the server. They haven't been made "canon" yet. They are holy data retention icons that can never from this day forward be edited, lest Satan himself swoop down and remove your ISO-9000 certification.
There's literally no reason for Git to not allow you to edit the comments of unpushed commits at literally any time.
So why doesn't it?
The answer is: BECAUSE IT IS BAD SOFTWARE.
So your opinion of git is based entirely on broken software that uses git as its back end?
Find me a piece of non-broken software and I'll gladly use it.
I've used GitHub for Windows, basically anything more than "edit files and commit them" breaks in it. It sucks.
Yeah, preaching to the choir here, buddy.
So, I use the command line instead because it actually works.
Ok, but I don't have that option.
Please tell me: what do you expect to happen when there is a merge conflict?
What Visual Studio (for TFS and Git) does seems pretty ideal. And note that the Visual Studio conflict resolution widget-thingy lets you build your project and run unit tests at any time to check if your merge is correct.
Of course you've never USED TFS because you have no fucking clue what you're even talking about, so I wouldn't expect you to have been exposed to that.
SourceTree's is the worst, because literally a single wrong click "resolves" the conflict without actually resolving it. GitHub for Windows usually just barfs up the "shit happened, use the CLI sucker" message, but I managed to commit unmerged conflicts using it once or twice before I gave up on using it because it got too shitty.
Almost always I want to either fix the conflict, or sometimes I want to abort.
Abort your kids? Good idea; you don't want them growing up with the shame of having a father who loves Git.
So git by default sets me up to fix the conflict, or I can run git merge --abort to cancel.
Right; but then it makes it NEARLY IMPOSSIBLE TO FIX THE CONFLICT because it stomps all over the source code and suddenly you can't run a build, or run your unit tests, or basically use ANY tools that might help you determine whether you got the conflict correct or not.
Actually, this is good, because now two people have done the work and if the work differs in any way you know immediately that one of them messed up. If only one person did the work, you'd have no idea.
They aren't even doing the same work! Bob was editing the IT sheet, and Sally was editing the HR sheet!
You're literally PULLING SHIT OUT OF YOUR ASS in an attempt to defend Git's obviously broken behavior at this point. Seriously. Stop it. If you're not going to debate clean, just get the fuck out of here.
I don't claim that it works with random git tools that you mysteriously find and download. I claim it works in git.
That's not what you said. I can't reply to the strange thoughts floating around in your watery brain, I only have access to the shit you typed into Discourse.
git can't be held responsible for other people's broken software.
Yes it can. I already said why above. Scroll up. Read it.
The solution I gave you was correct for the scenario I assumed you were talking about.
And where did the assumption come from? Oh, right, YOU PULLED IT RIGHT OUT OF YOUR FAT ASS!
Again, I'm sorry for making an assumption.
Right; you're sorry for doing it, but in this post where you're saying so you DID IT AGAIN JUST A FEW PARAGRAPHS PRIOR!
You dumb shit.
The reason I didn't mention it doesn't work in other cases is because I believe those other cases are wrong.
What's wrong about them?
We're just going to have to disagree here about whether having more than one unpushed commit is an okay thing.
The ability to work offline is one of the features Git promotes! That's like one of the extremely few reasons to choose it over the alternatives!!!
Developers that struggle to use a CLI should not be developers, or near a computer, or within a 5 mile radius of an elementary school.
Right; fuck people with disabilities. Fuck people who like modern usable software. Fuck people who develop things like, say, non-linear video editors or music software. Fuck 'em all. Those people should be put in the same bucket as child molesters. You are so right.
git needs command line, anything else will simply give you headache.
Right; because it was designed by idiots who are shitty at writing software.
As much as I like your rants, it will not change a thing.
I know. Git's already broken beyond repair. Even if they WANTED to fix it, they can't now because of the moronic decision to use the CLI as the API-- it's literally impossible to fix, because the shitty morons who wrote it made the same mistakes that virtually all open source projects make.
And yet because it's "trendy", I'll keep encountering companies that picked it without properly evaluating all the alternatives. And so I'll never be able to get away from it.
So Linus is such an asshole, he's not only made a piece of shitty software, but he'd doomed me to having to work with his shitty software for the rest of my life. Great.
Welcome to IT: the career of shit! The only industry where things get worse over time instead of better!
Maybe it's just me, but don't most companies do things like assign specific tasks to employees?
Right; in this example they did.
Manager: "Hey Bob, update the IT page in the forecast."
Bob: "Sure thing, boss."
Manager: "Hey Sally, I'm putting you in charge of the HR page."
Sally: "Ok, but I got to take care of this benefits report first."
Manager: "No problem."If they did things like "be a manager" and "delegate" (which have been proven to be effective at distributing workload across groups of people) then maybe they wouldn't have to worry about having many people do the same thing at once, unaware that someone else is also working on said task.
THEY'RE NOT DOING THE SAME TASK. WHY DO YOU MORONS MAKE THIS ASSUMPTION!?
Goddamned, you're the second person. What's fucking wrong with you?
-
Ok, but I don't have that option.
Sorry, I guess you're screwed. I have nothing to say in this case.
-
Since the software here blows and there's no article topic yet, I guess that I'll post in this topic instead.
-
I have nothing to say in this case.
You had nothing to say to start with.
At least nothing intelligent.
-
Fuck you, I love Downfall.
I hate these shitty-ass moronic edits of that brilliant scene.
-
Fuck you, I love Downfall.
I hate these shitty-ass moronic edits of that brilliant scene.
You hate something that's plentiful, and people love to do? I never would have guessed that. It's so out of character for you.
-
All the blakeyrant above: TL;DR
I think git as a low level concept is beautiful and a good client/software to do what the cli and many GUIs are trying to do is what's missing here. Microsoft is doing something with VS and libgit2 but it seems to be a work in progress.
It's not like the git format is preventing you to do the basic tasks of version control, the tools just aren't very user friendly.
Though it's still reasonably easy to learn the required steps to do basic damage control without removing your local repo once in a while, like
git reset --hard
.
-
Yeah, in my experience the CLI is far superior to any of the GUIs or other wrappers for git. I learned that pretty quickly. Maybe one day in the future there will finally be a decent GUI that @blakeyrat can use so he never has to open a shell.
-
Maybe one day in the future there will finally be a decent GUI that @blakeyrat can use so he never has to open a shell.
GIT HAS BEEN AROUND SINCE 2005 WHY ISN'T THERE ONE NOW!
Why doesn't this bother you!?
"Yes sir! I love shitty software! Give me some more sir!"
-
It doesn't bother me because the shell does everything I need git to do and more in just a few seconds. If it sucked, I'd agree with you.
-
You don't even know what the word "suck" means. You've been using open source too long, you're entirely numbed to the entire concept of software having quality. Even people (people who aren't you) who use Git on the CLI says it sucks. Which is undoubtedly true, because it sucks everywhere. It's shitty software.
-
GIT HAS BEEN AROUND SINCE 2005 WHY ISN'T THERE ONE NOW!
No one has bothered because it's easier to teach people the quirks of the cli than to write a decent GUI.
Why doesn't this bother you!?
Can't say for @LB_ but it does bother me.
-
It does what I need it to do without hassle. That's much more than I can say for most other software, especially closed source software...
-
That's much more than I can say for most other software, especially closed source software...
Go back to Slashdot.
-
I've actually never been there?
-
I don't believe you.
-
Honestly, I don't really know much about it except that I don't want to visit it based on how people talk about it.
-
-
SERIOUSLY. Git can die in a fire.
I ended a phone screen interview just a few days ago when the guy I was speaking with bragged to me that he had moved their entire .NET/C# team off of TFS to git, and they were using that now not only for source control, but also to tie into automatic builds. Pretty much jumped in to the middle of his little speech, asked him if git was mandatory. He said yes. Asked if git was being used as UI or CL, he said CL. And I said, ok, we're done here. I literally hung up on him as he was sputtering, "but but but...".
Nope.
-
Ok, why? Many projects are moving to git, I don't see that as a reason to just completely ignore a person. After all, they not only have the ability to work with git, they also have the ability to properly handle a migration to it.
EDIT: or were you the one being interviewed? If so, never mind - I respect your personal preferences.
-
Ok, why?
Seriously? Are you trolling? Blakey just went on a tear about why ... see previous answers
And yes, I was the one humoring them to listen to their sales pitch to pull me away from what I am currently doing.
-
-
-
Asked if git was being used as UI or command line,
This is gibberish to me.
-
Developers that struggle to use a CLI should not be developers, or near a computer, or within a 5 mile radius of an elementary school.
What? Why? Because they don't see the benefit of memorizing a million commands for a hundred different applications each using different flags and options, and don't enjoy typing them? What does that have to do with developing?
Actually, scratch that. Developers that feel mastery of the CLI is an advantage should be barred from developing interfaces at all. Because they end up adding to the list of broken interfaces that have to be learned as arcane secrets to stroke their egos, thinking their broken shit is good software.
-
This is gibberish to me.
Reframed: I asked if they were using a plugin that ties into Visual Studio in a graphical way so I could just use it similar to how TFS is used, or if I would have to exit Visual Studio, pull up the command line, and play with git that way. He replied that the latter case was how it was being used.
-
Oh.
Good on you.
-
> Asked if git was being used as UI or command line,
This is gibberish to me.
-
Nobody is saying the command line is a good thing. Unfortunately, due to historical raisins, you need to know how to use the command line. You can cover over it with front ends, and sometimes this works pretty well, but with git it works terribly.
I don't like the command line. I don't like shells. I don't like terminals. But git works well and it works via command line. So that's what I do.
Seriously? Are you trolling?
Sorry, it was a misunderstanding.
-
Nobody is saying the command line is a good thing.
You are not saying that. A lot of other developers do. And it's not because of historical reasons. As blakey regularly points out, git is recent. There's no reason for git to be developed as a cli application. It could have been implemented as a library, for example, with a sane API that anyone could have written different front ends for. They chose to make it a console program for no reason other than they think the command line is good.
They are sick and need help.
-
-
@rc4 said:
Developers that struggle to use a CLI should not be developers, or near a computer, or within a 5 mile radius of an elementary school.
What? Why? Because they don't see the benefit of memorizing a million commands for a hundred different applications each using different flags and options, and don't enjoy typing them? What does that have to do with developing?
Actually, scratch that. Developers that feel mastery of the CLI is an advantage should be barred from developing interfaces at all. Because they end up adding to the list of broken interfaces that have to be learned as arcane secrets to stroke their egos, thinking their broken shit is good software.
Struggle ≠ doesn't like, dumbass.
-
As blakey regularly points out, git is recent. There's no reason for git to be developed as a cli application.
There is a perfectly valid reason: Linus Torvalds made it.
They are sick and need help.
I agree.
-
Struggle ≠ doesn't like, dumbass.
Doing something you dislike for an extended period of time can be described as a struggle. If you meant "people who have actual difficulty typing things into a computer", you might as well not have bothered. They self-select against it.There is a perfectly valid reason: Linus Torvalds made it.
That's not a "reason", that's just a description of what happened. "Linus Torvalds is an ass" is the reason. "Open source developers hero-worship him and internalize his bad ideas" is another reason. I wouldn't say they are valid reasons, however.
-
There's no reason for git to be developed as a cli application. It could have been implemented as a library, for example, with a sane API that anyone could have written different front ends for. They chose to make it a console program for no reason other than they think the command line is good.
Completely false. Git was designed by and for Linux kernel developers, who would be familiar with the command line.
-
Most people are familiar with toilets. That doesn't mean you should create internet services designed to be used with toilets. Google already tried that once, and it was a joke.
-
My point was that git wasn't originally intended to be for the general population.
-
Still, they could easily separate the git CLI frontend from the library backend and maintain them separately. It would sure fix a lot of problems with the ecosystem.
-
There is a perfectly valid reason: Linus Torvalds made it.
Right; he is a really shitty software developer who has no idea what he's doing.
The problem is all the other software developers who defend him as some kind of genius. I mean at least with Atwood, people can see right away that the emperor ain't got no clothes.
-
Wait, did @Kian take over your account, or did you seriously just argue both sides of the same dispute?
There is a perfectly valid reason: Linus Torvalds made it.
Still, they could easily separate the git CLI frontend from the library backend and maintain them separately. It would sure fix a lot of problems with the ecosystem.
-
Completely false. Git was designed by and for Linux kernel developers, who would be familiar with the command line.
... and they want to exclude people who are interested in computers being friendly from participating. Because fuck users. Fuck everybody who isn't them.
If everything's hard as fuck, OH HEY, they can charge a premium for their services as kernel developers. If they made ANY effort to make the process easier their value goes down.
Their incentives are all wack, yo.
-
The problem is the celebrity syndrome.
Wait, did @Kian take over your account, or did you seriously just argue both sides of the same dispute?
Whenever I say "Linus Torvalds" I am using it as a synonym for "an ass"
-
... and they want to exclude people who are interested in computers being friendly from participating. Because fuck users. Fuck everybody who isn't them.
It's not like there isn't other version control software. Git works fine for what was originally its target audience. Your complaint should really be targeted at the projects that use git when it's not really a good fit for them, which would be pretty much everything that isn't a command-line program.
I know there's a school of thought that says people shouldn't release software unless they make it good to use for everyone. In the case of software that you have to pay for, I think there's some merit for that. But to expect that of free software seems a bit entitled.
Whenever I say "Linus Torvalds" I am using it as a synonym for "an ass"
No dispute there.
-
I know there's a school of thought that says people shouldn't release software unless they make it good to use for everyone. In the case of software that you have to pay for, I think there's some merit for that. But to expect that of free software seems a bit entitled.
Money isn't the only motivation: wouldn't it be amazing if your open source project built itself? Making it more accessible and usable encourages people to use it, and making it easier to contribute means that more people will contribute when they otherwise wouldn't bother.There have been many times where I wanted to make a simple contribution to an open source project and changed my mind when I found out how difficult it was. Some developers seem to actively hate pull requests and even force you to fix small typos yourself instead of just doing it themselves in the merge.
-
It's not like there isn't other version control software.
I know, but COMPANIES I WORK FOR KEEP SWITCHING TO IT BECAUSE IDIOTS
Git works fine for what was originally its target audience. Your complaint should really be targeted at the projects that use git when it's not really a good fit for them, which would be pretty much everything that isn't a command-line program.
Git is shitty software, and companies that choose to use it are making a shitty decision.
There's no mutual exclusivity here, both are valid complaints.
I know there's a school of thought that says people shouldn't release software unless they make it good to use for everyone.
I'd be happy if they at least TRIED. Or even GAVE LIPSERVICE TO TRYING.
I wouldn't expect someone like Torvalds to succeed at creating usable software, but it'd be nice if he DIDN'T GO OUT OF HIS WAY TO MAKE IT AS UNFRIENDLY AS POSSIBLE (which I'm convinced is what happened with Git.)
-
By the way @blakeyrat - just to be clear, your problems are with git's front end only, right? Would a better front end solve all your issues? Or do you have deeper concerns?