Reduce the number of unnecessary objects in pushed packs
Convert enqueue_object to a function
Fix dumb mistake in the comparison function
branch: rename 'tracking' to 'upstream'

The term 'tracking' is overloaded. Help distinguish what we mean by
using 'upstream' for this part of the library.
branch: refactor git_branch_remote_name

Return the size we'd need to write to instead of simply an
error. Split the function into two to be used later by the upstream
configuration functions.
Fix puzzling doc comment

Signed-off-by: Greg Price <price@mit.edu>
revwalk tests: better diagram of example repo

The purported command output was already inaccurate, as the refs
aren't where it shows.  In any event, the labels a reader of this
file really needs are the indices used in commit_sorting_*, to make
it possible to understand them by referring directly from those
arrays to the diagram rather than from the index arrays, to commit_ids,
to the diagram.  Add those.

Signed-off-by: Greg Price <price@mit.edu>
revwalk: refactor tests a bit

Signed-off-by: Greg Price <price@mit.edu>
General example: run against testrepo.git

Fixes #1455
Merge pull request #1456 from ben/fix-general-example

Fix the general.c example to run against testrepo.git
revparse: Parse range-like syntax

Signed-off-by: Greg Price <price@mit.edu>
revwalk: Parse revision ranges

All the hard work is already in revparse.

Signed-off-by: Greg Price <price@mit.edu>
examples: rev-list

This demonstrates parts of the interface for specifying revisions that
Git users are familiar with from 'git rev-list', 'git log', and other
Git commands.  A similar query interface is used in out-of-core
command-line programs that browse a Git repo (like 'tig'), and may be
useful for an 'advanced search' interface in GUI or web applications.

In this version, we parse all the query modifiers we can support with
the existing logic in revwalk: basic include/exclude commits, and the
ordering flags.  More logic will be required to support '--grep',
'--author', the pickaxe '-S', etc.

Signed-off-by: Greg Price <price@mit.edu>
examples: a test, for rev-list

This test file could probably be improved by a framework like
the one in git.git:t/, or by using a language like Python instead
of shell.

The other examples would benefit from tests too.  Probably best
to settle on a framework to write them in, then add more tests.

Signed-off-by: Greg Price <price@mit.edu>
Merge remote-tracking branch 'gnprice/revwalk' into development
test: Add missing NULLs
Propose unified rev-parse API
Implement unified git_revparse
Updated link to Haskell bindings

The old one hasn't been updated in a long time. This one is current.
Deprecate git_revparse_single and _rangelike