Open a connection to a remote with extended options.
The transport is selected based on the URL; the direction argument is due to a limitation of the git protocol which starts up a specific binary which can only do the one or the other.
The given options structure will form the defaults for connection
options and callback setup. Callers may override these defaults
by specifying git_fetch_options
or git_push_options
in
subsequent calls.
GIT_DIRECTION_FETCH if you want to fetch or GIT_DIRECTION_PUSH if you want to push
0 or an error code