basic options parsing and whatnot.
'git subtree split' now basically works.
We now copy the other stuff about a commit (changelog, author, etc).
Print out the newly created commitid at the end, for use in other scripts.
Add a new --rejoin option.

The idea is to join the new split branch back into this one, so future
splits can append themselves to the old split branch.  We mark the split
branch's history in our merge commit, so we can pull it back out later.
Use information about prior splits to make sure merges work right.
Added a --onto option, but it's so complicated I can't tell if it works.
Hmm... can't actually filter rev-list on the subdir name.

Otherwise we can't keep track of parent relationships.  Argh.

This change makes it "work", but we get a bunch of empty commits.
Skip over empty commits.

But we still need to get rid of unnecessary merge commits somehow...
Quick test script for generating reasonably complex merge scenarios.
Prune out some extra merge commits by comparing their parents correctly.
Even more aggressive commit trimming.

Now we cut out a commit if any of its parents had the same tree; just use
that parent in its place.  This makes the history look nice, but I don't
think it's quite right...
Okay, that was a little too aggressive.

Now we only prune out a commit if it has exactly one remaining parent and
that parent's tree is identical to ours.

But I also changed the test to create the initial "-s ours" merge in one
step instead of two, and that merge can be eliminated since one of its
parents doesn't affect the subdir at all, and is thus deleted.
Pass the path using the --prefix option instead of on the command line.

I like this better.  It's more like git-read-tree and some other commands.
Add a new 'git subtree add' command for adding subtrees from a given rev.
Add 'git subtree merge' and 'git subtree pull'.

These are simple shortcuts for 'git merge -s subtree' and 'git pull -s
subtree', but it makes sense to have it all in one command.
Handle it successfully if a given parent commit has no parents.
Change test.sh to test the new add, merge, and pull commands.
todo list
Add --annotate option, and create recognizable file content during tests.