Shallow commits
===============

.Definition
*********************************************************
Shallow commits do have parents, but not in the shallow
repo, and therefore grafts are introduced pretending that
these commits have no parents.
*********************************************************

The basic idea is to write the SHA1s of shallow commits into
$GIT_DIR/shallow, and handle its contents like the contents
of $GIT_DIR/info/grafts (with the difference that shallow
cannot contain parent information).

This information is stored in a new file instead of grafts, or
even the config, since the user should not touch that file
at all (even throughout development of the shallow clone, it
was never manually edited!).

Each line contains exactly one SHA1. When read, a commit_graft
will be constructed, which has nr_parent < 0 to make it easier
to discern from user provided grafts.

Since fsck-objects relies on the library to read the objects,
it honours shallow commits automatically.

There are some unfinished ends of the whole shallow business:

- maybe we have to force non-thin packs when fetching into a
  shallow repo (ATM they are forced non-thin).

- A special handling of a shallow upstream is needed. At some
  stage, upload-pack has to check if it sends a shallow commit,
  and it should send that information early (or fail, if the
  client does not support shallow repositories). There is no
  support at all for this in this patch series.

- Instead of locking $GIT_DIR/shallow at the start, just
  the timestamp of it is noted, and when it comes to writing it,
  a check is performed if the mtime is still the same, dying if
  it is not.

- It is unclear how "push into/from a shallow repo" should behave.

- If you deepen a history, you'd want to get the tags of the
  newly stored (but older!) commits. This does not work right now.

To make a shallow clone, you can call "git-clone --depth 20 repo".
The result contains only commit chains with a length of at most 20.
It also writes an appropriate $GIT_DIR/shallow.

You can deepen a shallow repository with "git-fetch --depth 20
repo branch", which will fetch branch from repo, but stop at depth
20, updating $GIT_DIR/shallow.

The special depth 2147483647 (or 0x7fffffff, the largest positive
number a signed 32-bit integer can contain) means infinite depth.
