Sunday, February 10, 2013

Git: Version Control for Everyone

Received a sample copy of a new Git book from Packt publishing.

It says "Beginner's Guide" on the cover; its target audience is "everyone", which apparently means those of us who have not yet read existing Git books by Swicegood, Loeliger, or Chacon, or find them a bit intimidating.

This book turned out to be a very interesting read.

It is relatively short (160 pages), and can be browsed in pretty much a single sitting. I found its approach to introduce Git to "everybody" readers very interesting. After showing step-by-step installation on major platforms (which every Git book unfortunately needs to do), the document it tracks in its first Git repository as its example is "content.docx" (surprise!).

I do not recall seeing anybody start teaching Git (or any other SCM for that matter) by tracking something you cannot get a meaningful diff out of its history you can manipulate. But we coders have to admit that that is one of the definitions of "everybody"; normal people do not read diffs and apply patches.

And the book demonstrates that tracking "content.docx" is sufficient to teach many parts of Git, and successfully teaches resetting to an earlier point to discard recent history, setting up a central repository and using it to work with others by communicating, reviewing the history with gitk, git log, git shortlog, etc., without ever mentioning diffs or merges. It is only at page 107 we see text files added to the history and merge conflicts getting resolved. We do not even see git blame mentioned anywhere in the book.

If somebody tried those other "for programmers" Git books and found their introductory parts a little over his head, this book may be a good introductory book to help him get over that very initial hump.

I have never heard of the author of this book, nor any of the people listed as reviewers, on the Git mailing list or elsewhere. I find that fact alone satisfyingto see that a Git book is written by somebody who is not an insider, and the book is targeted for "everybody". It shows how much progress we, the Git development community, have made to make the system more accessible and how much Git has become to matter in the real world. Thank you, everybody in the Git community, for working on making Git a better system every day. Your work is very much appreciated.


devzero2000 said...

I Agree with you. Git is a beautiful community, very active, with beautiful people. Perhaps it is the only mailing list at high traffic ilike to follow.

Elia Pinto

Jason said...

Related to meaningful diffs of docx..

I actually wrote a git merge driver to accomplish this using Microsoft Word & tracked changes. Check it out.