chiark / gitweb /
dgit: rpush: Do argument parsing and chdir in pre_...
The only thing in between pre_... and cmd_... os git_slurp_config.
The code now in pre_... does the following things, all of these should
be done before git_slurp_config:
* Sets some global variables affecting debugging and logging output.
If git_slurp_config is told to print debugging, it should be
affected by these changes.
* Rearranges its file descriptors so that stdin/stdout are as the
rest of dgit expects, and the protocol is on PI/PO. If
git_slurp_config were to use stdin/stdout, it ought to use the
"normal" versions, and not access the protocol streams.
* Checks and calculates the negotiated protocol version. This is not
affected by the config, only by the arguments form the caller and
our own idea of the protocol versions we support.
* Changes to the appropriate working tree. Doing this before
slurping the config arranges to honour the local git config from
build host working tree. (It also avoids rpush failing on newer
git due to asking for git config --local in the wrong place.)
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>