The current implementation of the CommandLineInstruction waits for the process to finish with a certain timeout specified.
While this is useful for checks that should not fail, it might slow down the commit process when executing post-commit steps that are not mandatory or the outcome is not relevant for the commit process.
Imagine you want to track something in an internal database or dump a range of revisions. If you use the post-commit hook for this, it would currently slow down the commit process on the developers machine.
(The same currently applies to the MailInstruction, but that's a different topic I guess.)
Target State:
Implement the possibility to configure the "execution mode" for CommandLineInstructions. There could be two modes:
WaitForExit
FireAndForget
with WaitForExit being chosen if nothing is specified.
The current implementation of the
CommandLineInstruction
waits for the process to finish with a certain timeout specified. While this is useful for checks that should not fail, it might slow down the commit process when executingpost-commit
steps that are not mandatory or the outcome is not relevant for the commit process.Imagine you want to track something in an internal database or dump a range of revisions. If you use the
post-commit
hook for this, it would currently slow down the commit process on the developers machine.(The same currently applies to the
MailInstruction
, but that's a different topic I guess.)Target State: Implement the possibility to configure the "execution mode" for
CommandLineInstructions
. There could be two modes:WaitForExit
FireAndForget
with
WaitForExit
being chosen if nothing is specified.