Externalise pull/push behaviour to PullPushPolicy
Cleanup pull/push API usage & make the pull fail on non fast forward merges
Implement "rebase on failed pull" and "restore on rebase conflict" policy
Reduce profile overlay logging - store last overlay as runtime attribute
Allow the commit to stay in the repository in case of a TransportException
Migrate ExtendedUpgradeAndRollbackTest to arquillian
Reduce overlay profile logging
Revisit reset after push conflict
Remove dependency on InvalidComponentException from test support layer
Revisit git timeouts - pull/push is done in the context of the lock
Rely on jgit to properly synchronize pull, push and clone
Add a guarantee that the GitDataStore is initialised before we clone it.
Don't retry the pull/push - use the configured gitTimeout instead