
Getting Git - bearwithclaws
http://www.slideshare.net/chacon/getting-git?src=embed
======
garnet7
Looks well done, but seems like there ought to be audio with this (am I
missing something basic?)

~~~
glymor
There's a voice-over version and a video of him giving the talk at RailsConf
2008 here:

<http://gitcasts.com/git-talk>

(pdf version of the sides: <http://s3.amazonaws.com/chacon/git-talk.pdf>)

------
schacon
Just to be clear, this slideshow was done at RailsConf 08, about a year and a
half ago. Although all the internals stuff is still relevant, the 150 commands
thing is no longer an issue. The only binary in your path since 1.6 is 'git',
not 'git-branch', 'git-ls-tree', etc. So the slides where I'm talking about
being confusing with all the commands is not relevant anymore.

------
gecko
Do those slides seriously lump Mercurial and Darcs together as distributed
delta-based version control systems?

~~~
schacon
I apologize for that - at the time I misunderstood Mercurial internals. It
confused me that Hg does store all it's files this way - and importantly it
stores its file revisions under the file name, so renames have to be tracked
explicitly to find the history of the file properly, which isn't the case with
Git. I was focused on that - content vs file tracking.

However, you are right, Mercurial is fundamentally a DAG based system and I
didn't know that at the time and nobody I had talked to about this knew
either. To be fair, just a few months ago a Googler made the inverse mistake
about Git when talking about Hg at Google IO, so I'm not alone. :)

~~~
gecko
Quite all right. :) I think a lot of people locked into Git or Mercurial have
a distorted view of how different the two systems are. Especially these days,
the differences are ultimately minor, which is why projects like hg-git, which
allows transparently working with a Git repositories from Mercurial, are
possible in the first place. Yes, Mercurial's revlogs versus Git's blobs have
performance implications for both systems, but that difference is not
meaningfully user-visible 99% of the time--and the rest really just ends up
being differences in terminology and commands, more than anything.

