5 ms·
Getting Git
- gecko 17y agoDo those slides seriously lump Mercurial and Darcs together as distributed delta-based version control systems?
- jrockway 17y agoThey... are.
- gecko 17y agoThe only difference between Git and Mercurial at this level is that Mercurial does the equivalent of Git always storing changes in packs, instead of delaying delta compression until a garbage collect is issued. Both systems place the focus on full files, and neither is remotely close to darcs' storing of patches only, with inference of the resulting file based on patch algebra.
- schacon 17y agoI 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 17y agoQuite 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.
- garnet7 17y agoLooks well done, but seems like there ought to be audio with this (am I missing something basic?)
- glymor 17y agoThere's a voice-over version and a video of him giving the talk at RailsConf 2008 here: http://gitcasts.com/git-talk http://gitcasts.com/git-talk (pdf version of the sides: http://s3.amazonaws.com/chacon/git-talk.pdf http://s3.amazonaws.com/chacon/git-talk.pdf)
- schacon 17y agoJust 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.