Allow callers to define commit parents by passing them directly.
This allows for a series of linear commits to be created in a single
statement, but more complex DAGs will still need multiple statements.
Placeholder support will arrive in a future commit.
This is particularly useful since for test purposes I'd like to create
Commit messages that are essentially the same but that have different
hashes. Mutating the message is an easy way to achieve this.
pygit2.Signature by default includes a timestamp of the current time,
meaning that two Commit() objects created at different times will have
different hashes. This makes testing awkward, so make the signature
timestamp always be the same.
It looks like pygit2.Signature is directly mapped to the C
implementation, so I'm not sure it's feasible to stub out the time
function for testing. So this change will have to be without a test, as
I don't want to add a sleep in the test as the only other way of
simulating time passing.
We want our quilt and gbp invocations to be reproducible when the
importer is run, or they might affect the resulting hashes. So use
application-specific logic via parameters (quilt) or environment (gbp)
to not load any configuration files.