This sunday I took some time to watch Linus' Google Tech Talk video on Git. Like others, I've been interested in SCM for a long time (started with CVS, then used PRCS for a couple of years, tried Arch, Monotone used Darcs for a while, got poison-patched, tried Git and eventually settled on Mercurial) and seeing Git getting better documentation and easier CLI, I decided it was time to give it another chance (this being encouraged by the stated of Mercurial API).
Judging from Linus' reputation, I expected the talk to be fairly technical and to go directly to the "guts of git" . To my surprise, I found that instead of detailing the architecture and implementation of git, Linus was focusing much more on the use and the social impact of git and its fundamental concepts...
In the beginning, Linus talks about the concept of decentralized SCM, explaining briefly what it is, and then explaining in detail why he thinks every open-source projects should use a decentralized SCM model: because in the decentralized model it is so easy to create branches (each repo is a branch), everybody can contribute, even if the maintainers don't trust them. In centralized models, developers have to give credentialx to other developers, and as you usually don't want somebody to mess with the code in your project, you end up being conservative about contribution, spend a lot of time doing politics and only give commit access to a few people.
Because the decentralized model makes it easy to create your own branch and to keep track of changes coming from the "main line", it encourages a healthy evolution of the codebase: you can start working on a new feature on your own, without spending tons of time arguing about it with the lead devs, and once you're satisfied with it, simply advertise your repository URL. If you did a good job (and propaganda
people will start to use it, and maybe use your repo as the new "main line" -- or maybe the maintainers will pull your changes from your repo.
Also, according to Linus, the notion of trust in a decentralized models follows very closely our "hard-wired" social patterns: we only have so many people that we can trust. In centralized model, you have to trust everyone with commit access. With decentralized model, you can trust a few people and pull from them. Each of these people may in turn trust a few people and pull from them too, resulting in cascading propagation of changes. For large projects like the kernel, this seems like a very democratic way of managing contributions.
One last interesting point that Linus makes is about performance. We may tend to think that Linus cares about performance because he's a geek and he just wants to brag about how fast his C-based implementation is compared to others -- it is absolutely not the case. Although Linus is proud (and confident) of Git's performance, he explains how having a fast SCM software makes operations cheap: it's easy to commit, branch and most importantly easy to merge.
According to Linus, merging is the most crucial feature of SCM systems -- in most existing systems, merging is a major pain, it is a slow, complicated process. By making it simpler (automatic resolution) and most importantly, fast, git encourages merging, and thus supports the decentralized model (you have to merge often to keep in sync with other "branches").
So why did I wrote "Linus is a designer" in the title ? Well, because in this talk, Linus does not really talks like the regular hacker: he does not only creates something to solve a technical problem (a tool), but he also tries to have an impact on people and change their perception of things. Linus' perspective on the decentralized model, and how it benefits open-source projects, or his perspective on performance and how it favors a specific type of usage (frequent merge) do not (only) stem from technical problems, but rather are the result of trying to create or evolve habits.
This is quite unusual in the world of software, and seeing that coming from Linus, one the world most respected hacker, is even more surprising. In the end, it shows us that there is a bright future for the term of "software design", where both the concepts and interface of a software not only serve their original purpose (help a user in a task) but also manage to make things change, and to make people look at things in a slightly different way... I guess this will probably remind some of you of previous discussions on programming language design 
Voilà, that's all I had to say about that ! Now you can just watch the whole thing or read a pretty good summary here.