Derive push operation specification from this push operation result.
Specification is created basing on URIs of remote repositories in this result that completed without connection errors, and remote ref updates from push results.
This method is targeted to provide support for 2-stage push, where first operation is dry run for user confirmation and second one is a real operation.
@param requireUnchanged if true, newly created copies of remote ref updates have expected old object id set to previously advertised ref value (remote ref won't be updated if it change in the mean time), if false, newly create copies of remote ref updates have expected object id set up as in this result source specification.
@return derived specification for another push operation.
@throws IOException when some previously locally available source ref is not available anymore, or some error occurred during creation locally tracking ref update.