Hooks
git-gamble
provides his own custom hooks :
pre-gamble <GAMBLED>
pre-gamble
hook is executed with one argument<GAMBLED>
post-gamble <GAMBLED> <ACTUAL>
post-gamble
hook is executed with two arguments<GAMBLED>
and<ACTUAL>
Where :
<GAMBLED>
ispass
orfail
<ACTUAL>
ispass
orfail
Custom hooks of git-gamble
are like any other client-side hooks :
- a hook is a file
- a hook must be in the
$GIT_DIR/hooks/
folder- or in the folder configured by
git config core.hooksPath
- or in the folder configured by
- a hook must be executable (
chmod +x .git/hooks/*-gamble
) - will not be executed if any of these options are used:
--no-verify
--dry-run
Check the hooks
' folder for examples of use
post-gamble.real_time_collaboration.sample.sh
is specially adapted to near real-time collaborationpost-gamble.assistant.sample.sh
is a simple assistant that displays tips based on the result of the gamble- If you are using
git-time-keeper
The following diagram shows when custom hooks are executed in relation to normal git hooks
flowchart LR subgraph git-gamble's hooks' lifecyle direction TB git-gamble([git-gamble\n--pass OR --fail]) --> pre-gamble[pre-gamble\npass OR fail]:::gitGambleHookStyle --> GAMBLE_TEST_COMMAND([exec $GAMBLE_TEST_COMMAND]):::gitGambleInternalStyle --> gamble{Result ?}:::gitGambleInternalStyle gamble -->|Success| Success subgraph Success direction TB git_add([git add --all]):::gitGambleInternalStyle --> git_commit([git commit]):::gitGambleInternalStyle --> pre-commit:::gitHookStyle --> prepare-commit-msg[prepare-commit-msg\n$GIT_DIR/COMMIT_EDITMSG\nmessage]:::gitHookStyle --> commit-msg[commit-msg\n$GIT_DIR/COMMIT_EDITMSG]:::gitHookStyle --> post-commit:::gitHookStyle post-commit --> rewritten? rewritten?{{"Last commit rewritten ?\nWhen gambling fail\nafter another gamble fail"}}:::gitGambleInternalStyle rewritten? -->|Yes| post-rewrite[post-rewrite\namend]:::gitHookStyle --> post-gamble-success rewritten? -->|No| post-gamble-success post-gamble-success[post-gamble\npass OR fail\nsuccess]:::gitGambleHookStyle end gamble -->|Error| Error subgraph Error direction TB git_reset([git reset --hard]):::gitGambleInternalStyle --> post-gamble-error[post-gamble\npass OR fail\nerror]:::gitGambleHookStyle end end subgraph Legend direction TB subgraph Legend_[" "] direction LR command([Command executed by user]) git-gamble_command([Command executed by git-gamble]):::gitGambleInternalStyle condition{Condition ?}:::gitGambleInternalStyle end subgraph Hooks direction LR hook[git's hook]:::gitHookStyle hook_with_argument[git's hook\nfirst argument\nsecond argument]:::gitHookStyle git-gamble_hook_with_argument[git-gamble's hook\nfirst argument\nsecond argument]:::gitGambleHookStyle end end classDef gitHookStyle fill:#f05133,color:black,stroke:black; classDef gitGambleHookStyle fill:#5a3730,color:white,stroke:white; classDef gitGambleInternalStyle fill:#411d16,color:white,stroke:white;