I mean....ok....this pull request being inferior to the way HE (the creator of Git) imagined it (or implemented it) is a bit petty imho.
What's with the complaining? I am sure this is not the first time I have heard him complaining about something on Github or some other 'new technology'. The same goes with Crockford and his semi-colon.
Edit: Although, I must confess that it is annoying when the creators of a service that you use totally blow off your suggestions (esp. when that service is built on your own creation).....so I am torn on this one. Still has the 'annoying old man complaining feel' to it though.
He's not saying "we should all boycott GitHub because of it". He's not saying "they're idiots for doing this".
He's saying 'The Linux project works one way, GitHub doesn't support that way, so we're not using it, and they' won't change it'. That's it.
That is the spirit!
I remembered he once said talking angrily is to scare idiots off.
What a man.
Well...
"github is a total ghetto of crap"
"make a real pull request, not the braindamaged crap that github does"
I've never really seen them as cranky because they're spot on. Cranky old men usually don't have anything other than opinion behind their rantings.. Linus can at least defend his position. Given his contributions to the world of technology, I'm more than willing to let the acerbic attitude slide.
Either way, there are many decisions that people make that comes down to style preference and sure the 'purists' might think it is a watering down of programming....but it makes it more appealing to new developers. I can see Torvalds ranting on Ruby as not a 'real' language....I don't know if he has done so...but I wouldn't be surprised if he did.
Are people so averse to acknowledging the bounds of their own experience that they discount other views over a hint of emotion? Does every cantankerous remark need to be taken so personally? Why is it so important to be inoffensive? Does all advice need to be delivered as positive encouragement?
With a bigger microphone comes greater responsibility.
I am not taking Github's side on this particular issue - but this issue struck a bigger tone (for me)...where I have seen those with a larger microphone (by virtue of who they are) seem to be complaining louder (publicly) in recent history. It could just be that their microphone has gotten louder - but if it has, to a large extent they have a responsibility to be more conscious.
Imagine if Obama complained about the food at a bakery down the street that he went to - that would effectively kill that establishment. As a patron, does he have a right to complain about disgusting food? Absolutely...as someone with the largest pulpit in the world? Definitely not. There are other means he could use to get his message across.
Then again, I am not comparing Obama's pulpit to that of Torvalds, but I think it makes the point sufficiently.
Mini rant aside, it's a bit confusing. Because as Linus notes, there's no indication of the 80 char limit when authoring in the Web UI -- you're only penalized for it later. It seems there are competing sets of best practices.
My initial assumption is: Linus/Crockford/whoever-else-is-coming-across-as-a-cranky-old-person has seen whatever-he-is-berating or something very similar before, not just once but ridiculously often. That makes the reaction quite understandable and justified.
Plus, let's face it, we all want to be free to react like that when it's deserved ;)
I guess it was off-putting to me because of the ephemeral effects of him being who he is. Anybody could (and probably would) complain about the way Github has implemented various features - but they wouldn't get the attention that he has gotten. Maybe that's why I perceive it as him being 'cranky'.
So maybe my criticism was unfair because I wouldn't have criticized DHH for doing the same thing - or who knows, maybe I would.
Not sure, but now I see what you mean.
I think it's a response to the relatively recent over-abundance of attention and coverage given to wheel re-invention and uninformed opinion. I personally tie it to a particular subset of startup culture that relies heavily on convincing young developers to serve as grist for the startup mill by appealing to their ego.
This is not a cranky old man thing. This is a basic multiprogrammer project collaboration courtesy thing, similar to the reason that, say, if a project uses camel case variable names and one statement per line, you shouldn't submit code using foo_bar naming and putting as many statements as you can on a line.
In the last 5 or 10 years there has been a strong shift towards emphasizing civility and positivity even if it gets in the way of getting things right or expediency. I can certainly see the appeal in it, after all lots more people are drawn to programming now with a wider variety of personalities and motivations. I won't say it doesn't make sense to be more inclusive, but it certainly didn't used to be the norm.
Rails core homes on github right? What is it that they do when they don't like a pull request? Write a long blog post about how stupid people like you are a net drag on the open source world and keep awesome people like us from helping you even more and and rss it out to everyone.
Shrug.
No, it wasn't petty. It was useful, constructive criticism that the github developers appreciated.
It isn't just you, but I think you are being overly critical :)
However Linus is heading a huge project and besides that he is famous as well. Everybody wants his time, if only to show an e-mail in which he flamed them to death or to brag they got a commit into the Linux kernel tree.
So it is basically a matter of respecting his very limited resources.
If Linus wrote a lint for C, I really wonder what it would be like.
Okay, fine. The way he handled this particular issue seems like a dick move. Being one of the godfathers of computer science isn't a license to act like a jerk.
There's no question he's right, but there's nice-right and jerk-right.
This sort of response seems like it only inhibits people's desire to get involved.
How many projects have had as many people involved as the kernel? Not just software, any project. With people coming and going and working on whatever they want. For 20 years.
People have the right to be offended, they however DON'T have the right to not be offended.
Linus is a nice guy, he works well with others and has built some of the most amazing software in the world today. I work on the kernel and other system code on a day to day basis and have participated in threads with Linus before. When you are wrong he tells you so, in a very clear manner that outlines exactly WHY you are wrong.
Sure, he isn't always concise and succinct but that isn't really the point. If he wants to interject a few choice "swear words" to describe how badly you did something that's fine by me. As long has he describes exactly what is wrong and how to fix it.
People need to get a lot less wrapped up in HOW something is said and focus on WHAT is said. The essence of Linus's comments on this pull request can be summarized easily. GitHub's pull/request features are inadequate for kernel goverernance - and as the creator of git and designer of the inbuilt pull-request functionality he thinks this is subjectively retarded.
If you read past any of that and start saying crap like "he could have been more polite" to him then you have obviously missed the point. It's not his (or anyones) job to cater to peoples inability to grow a skin.
Screw coddling. shakes fist in general direction
"You might have fun raging on the internet, but I think your goals would be better served if..."
He rightly responds:
"Umm. I think I've been able to reach my goals on the internet better than most people."
I believe in civility and courtesy in many areas, and Linus doesn't phrase things exactly as I would. But then, I don't have his responsibility or experiences, either - and while people can disagree about whether he expresses his thoughts in a polite manner, he certainly does so in a clear one.
And the side effect is that he gets bored to listen at stuff that he thinks are silly. But see it from a different perspective, Linus is really, culturally an hacker, and not an academia professor. He is out there on github writing flames, arguing with people that have a github account completely clean and never wrote possibly a line of code at all. Exposing himself in the process to insults and so forth.
I really admire him.
And a few messages down, he proceeds to say "You are a moron".
Not exactly a role model of civility.
1.) Linus is being a bully. There's a difference between speaking your mind openly and using rhetorical force to invalidate contrary views.
2.) The kernel requirements can be whatever those who control the kernel demand. That's just common sense. Making the leap to declaring that only one text wrapping approach is objectively correct is delusional.
If Linus simply said "The github pull request interface makes it impossible to follow the kernel commit guidelines, and we are not open to reconsidering those guidelines" there'd be no argument.
Somehow, I don't know or have read about that many (if any) world-changing people, who also happen to be "so nice and understanding of others opinions" or "agrees to disagree".
I'm sorry, but there are indeed few ways to design a BMW and many ways to design a glob of metal that can't even move.
In response to the pull request he did simply say "I don't do github pull requests." and explained why, and basically said he would if github supported commit messages in the appropriate style. He never insulted the pull requester. He called whoever is this "Joseph" person a moron, and now we have no idea why.
Actually, I think Linus was factually correct. The persons involved were morons. :-)
Thank you for epitomizing what makes Linus worth emulating.
Rhetorical force. Coooool.
Love this no-nonsense style, but let me say that it's no only the style, but that Linus has enough on his side to back it up.
We're always listening for feedback and are working on improving the experience for everyone. It's too bad that useful bits of feedback like this turn into another drama episode though.
I'd take Github's version of any feature, any day, over the official git version, any time they differed - Git is a notoriously user-hostile piece of software interface-wise, and pretty much the only thing it has going for it on the usability front is Github.
Git is a notoriously user-hostile piece
of software interface-wise
It's funny you say that, because Git is the only version control system where working with branches, forks and merges in big projects is not only doable, but in 90% of the cases painless. You can't really appreciate Git until you've tried doing the same tasks in Perforce, SVN and CVS. No other similar software has the same painless approach to branching and merging, not even other distributed systems.Also, its interface is hostile because it requires the user to understand a little about its internals. You may disagree that this is good design, however it gives you unprecedented control over the repository, which you need often when the shit hits the fan. Also, Git is freakishly fast and efficient. Much like C, an interface done with taste, but that doesn't appeal to those with weak hearts. And the fact that such projects as Linux are maintained with Git, projects which have a huge number of contributers, it's a true testament to Git's awesomeness.
And btw, considering how version control is one of the most important tools at your disposal, if not the most important in big teams, stop reading those SVN 2 Git tutorials and go read a freaking manual. It's worth it, because you'd be amazed at how much power it has under the hood.
Probably true, but when you've changed the technology world twice before age 40 people tend to cut you some additional slack.
Then you probably didn't use any SCCS before git. Because CVS is even uglier, Bitkeeper is the reason Linus wrote git and every other I tried was more "user-hostile" than git.
> pretty much the only thing it has going for it on the usability front is Github.
You sound like a Visual Basic programmer who just saw C for the first time.
Edit: Bitkeeper, not bucket!
https://github.com/torvalds/subsurface/commits/master
Even if I can't code like Linus, I can at least try to write commit messages like his…
That said I don't think this is significant enough to add up to a compelling reason either way.
Projects like Git and Linux take their contributions in as patches that are sent to the projects mailing list. As it is not merged in to the master tree at the time of publishing, it would not make sense to use past tense for describing what it should do, if merged.
Thanks to Git's great history-graph altering functions like rebase and cherry-picking, it would make even less sense. You can always take some commit and apply it to new branches or even repositories.
It drives me nuts that I never know exactly when Github will break my one-line descriptions when there appears to be plenty of room left to display the characters. Like this one from Linus:
https://github.com/torvalds/subsurface/commit/bea6637c03a90f...
It's also simpler and promotes less convoluted phrasing.
It is direct, concise, consistent and tends to active voice rather than passive voice. Further, not everyone writing or reading the messages will be a native English speaker. Avoiding past-tense forms just makes it easier.
http://git.kernel.org/?p=git/git.git;a=blob;f=Documentation/...
Considering GitHub popularized git, if I were in charge of git I'd listen to what the GitHub guys have to say about it.
Linus using git for the linux kernel, the bitkeeper drama, and doing talks about why git is better and everything is broken made git popular.
Github has done a lot to push it, but even without github, git would still be huge.
Linus' use case for a pull request would probably be to much for a popularized and casual use case that is likely typical for GitHub.
And anyway it's Linus' prerogative to dictate his requirements for contributing to his project. The description he gives doesn't make it seem overly difficult (use what's already built-in).
Github wouldn't exist without Linus' git. I am really surprised they didn't take Linus' advice (reasonable, and no difficulty at all) in the first place.
You can have horrible commit messages and pull requests using e-mail pull requests. You can have the same with GitHub. Ultimately, the decisions of what sort of quality you demand on pull requests ought to be up to the maintainer, and GitHub is doing the right thing by not enforcing a standard that doesn't work for the majority of people.
If you tack '.patch' onto the end of a Pull Request you get a 'git am' compatible patch file complete with the email address that Linus complains is missing ;)
https://github.com/torvalds/linux/pull/17.patch
EDIT: I should note this works on any commit as well. Take this commit from Casbah (the Scala MongoDB driver I work on) - https://github.com/mongodb/casbah/commit/990a36fbde69db26689... - removing .patch gives you the normal web based github commit page.
https://github.com/torvalds/linux/pull/17#issuecomment-56637...
http://beust.com/weblog/2010/09/15/a-quick-guide-to-pull-req...
Furthermore, the patch was deficient in other ways. (a) it was missing the Signed-off-by: header, and (b) it should have been sent to the linux-bluetooth mailing list or one of the Bluetooth maintainers, with the linux-bluetooth mailing list cc'ed.
Again, it's Linux. And the issue was over what/whether/how he should accept commits into torvalds/linux on GitHub. Anybody's free to commit anywhere and fork Linux or make custom builds, distros, etc. But if there's one place he has the absolute right to be a tyrant is over torvalds/linux. The fact that he also designed and bootstrapped git for the whole purpose of doing version control The Right Way, based on his needs for Linux development, is just icing on the cake of that argument. But he was not polite.
pirtlj "I did not realizes that Linus' shit does not stink." torvalds "you are a moron"
Seems fair to me.
You're a moron." that people thought impolite. The comment he responded to appears to have been deleted, however, so I can make no judgement about how appropriate that was. I'd like to think it was completely appropriate -- I do agree with you overall that his other comments were reasonably polite.
I note that GitHub actually did a blog entry sometime ago about good commit practice, and it seems to be the same as what Torvald's requires. Not sure I'm understanding what th issue is... https://github.com/blog/926-shiny-new-commit-styles
Forking a project is a huge deal. Forking a git repository is no big deal.
Github does the former, and it encourages too-broad forks, and at the same time, discourages coordination and contribution with the original project. Nearly all forks should be short-lived and completely subsidiary to the main project.
The kernel has a mature, rigorous and well-defined development process[1]. Things that don't fit well into that model just aren't going to be successful, even if they work well in other contexts.
[1] http://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git...
If your devs commit bad code its probably pretty easy for you to find them and possibly fire them. If you can't tell who a kernel patch is from or even if it is actually from the person specified it calls into question the security of the kernel.
git request-pull
If you'd like to see an example, this will generate the text of a request sending the top few commits in your repository (assuming the origin / master convention) git request-pull master^^^^^ $(git config remote.origin.url)Either that, or just sending a mail with a link to your own git repo requesting a pull.
Linus does not hesitate to criticize and always think about things before declaring them cool.
Oh he makes errors like everybody. He's usually not always very nice in messages (read LKML and you'll understand). But he's usually right and he's usually not writing random things because "it is trendy".
So GitHub is trendy. Linus doesn't care. Linus cares for the good features and pull isn't one of them in his eyes. And then again, I think he's right. Pull in GitHub is crappy.
But what's missing from his message is the reason why the GitHub pull is crappy. I'm sure he knows, but he's using half words. Here's the reason:
If GitHub enforced proper pull messages PEOPLE WOULDN'T USE IT. Why? Because it's the easyness to fork and pull that make GitHub successful. So you see, pulls have to be DEAD EASY. And that means also "single text field, no enforcement of anything".
So yeah. GitHub won't fix it, because it'll be bad for their business.
With Linus' current work flow (pull requests via e-mail), it's still perfectly possible to have a horribly structured pull request, and so they've added on rules beyond what the technology can do for how pull requests ought to be formatted. I'm failing to see why the same rules can't be applied to GitHub.
Linus invented Git, and it's perfectly possible to have single character commit messages in Git. I'm not quite sure why it's a failing of GitHub that it takes a similarly loose approach to how it deals with pull requests.
I don't think so. Read tomayko comment in the original thread: GitHub acknowledged the issue with Pull requests.
Even if you were right, GitHub could add a way for a project to make its own (enforced) rules.
Seriously. Just dont' send this particular maintainer pull requests that way.
It's not really. If any other maintainer of a project finds they're cool with pull requests from github, then it's a fine tool for those projects. This guy runs a project which is an outlier in it's size, and which is also a far older project than most of what github hosts.
Now if his criticism has useful facts, that MIGHT be useful, and it does: The github format has fewer bits of info. Could some of those bits of info be important? Maybe. I didn't sense a genuine, measured analysis, but instead a rant from a maintainer about something that's not working for his project. Nor did I see a counterpoint from github why their tool does it the way it does. There may be real design decisions there, ones that might be better answers than what Torvalds has, especially for projects far smaller than Torvalds.
Don't let Torvald's status as the maintainer of the Linux kernel (and creator of git, to do that task) make you forget he's also paid attention to because he's famous as well as a useful contributor. Fame doesn't make you more right, just more adored. His ideas still require critical analysis from the rest of us.
Github is not Git. It's a separate product which happens to support Git, but is not Git, strictly speaking. It's basically a social network for building software. Far removed from the revision control software it depends on.
Complaining that the commit log isn't formatted in his preferred manner is similar to an engine designer complaining that the car's ODB2 reports aren't easy enough to read on his hand-held scanner. The engine designer can dislike it all he wants, but if I was the engineering team who designed the whole car, I wouldn't lose sleep over his dislikes.
I can't help thinking tons of "rockstar/ninja" developers out there are going to embrace this abrasive style of disagreeing with people and totally rationalize it by thinking well "that's how the guy who wrote Linux does it, so that's how I'm going to do it"
Someone that well respected should (and this is my opinion) never have to reach to the level of addressing someone so far-removed from the heights they've attained, as a 'moron', when simply ignoring them would do. But I'm nobody important, so what the hell do I know about anything ...
Fortunately, I think this sort of nastiness is self-limiting. The only really egotistical, nasty rock star I ever worked with destroyed himself, much to the delight ( and with some assistance from) his colleagues. I think that would be be a far more likely outcome than a nasty rock star continuing their ascent with a bad attitude.
Or can you sum up yours here?
http://tbaggery.com/2008/04/19/a-note-about-git-commit-messa...
Also, please write good git commit messages. A good commit message looks like this:
Header line: explaining the commit in one line
Body of commit message is a few lines of text, explaining things in more detail, possibly giving some background about the issue being fixed, etc etc.
The body of the commit message can be several paragraphs, and please do proper word-wrap and keep columns shorter than about 74 characters or so. That way "git log" will show things nicely even when it's indented.
Reported-by: whoever-reported-it Signed-off-by: Your Name <youremail@yourhost.com>
in one of his comment, "I did not realizes that Linus' shit does not stink. Thanks for clearing that up..."
Apparently, even if a comment gets deleted from a Github discussion, it still sticks to your public activity.
GitHub commit messages can be really ugly. I'm guilty of this and it's not something I'm proud of. I think the small improvement they did a while ago with the display of commit messages is a step in the right direction, I wish they would apply that same style to the web interface when composing commit messages.
edit: A good fix would be a way to turn off pull requests for projects or at least redirect users on how to send pull requests.
I am also pissed when someone ignores a feature I have written and redoes something without good reason.
Torvalds probably doesn't have time to handle a whole bunch of git pull requests, and most of them from github probably have problems or aren't important so this rule probably helps him a lot, practically speaking.
But obviously the people at github should really carefully analyze what he is requesting and if possible this could result in some minor improvements in that part of the github interface or git or both.
I don't know much about the Linux kernel, but I don't think that this type of driver information should be in such a centralized place and controlled by an individual or small group of individuals.
>pirtlj commented on pull request 17 on torvalds/linux a day ago Ouch my feelings are broken... I just wish you would live up to your image, but then again you're just an imperfect human too.
>pirtlj commented on pull request 17 on torvalds/linux a day ago I did not realizes that Linus' shit does not stink. Thanks for clearing that up...
problem solved :)