summaryrefslogtreecommitdiff
path: root/builtin/mailinfo.c
diff options
context:
space:
mode:
authorLibravatar Junio C Hamano <gitster@pobox.com>2014-12-01 15:29:54 -0800
committerLibravatar Junio C Hamano <gitster@pobox.com>2015-01-08 14:28:43 -0800
commit0855331941b723b227e93b33955bbe0b45025659 (patch)
tree70c84e087db0451e9b439c094c809b33fc268535 /builtin/mailinfo.c
parentreceive-pack: refactor updateInstead codepath (diff)
downloadtgif-0855331941b723b227e93b33955bbe0b45025659.tar.xz
receive-pack: support push-to-checkout hook
When receive.denyCurrentBranch is set to updateInstead, a push that tries to update the branch that is currently checked out is accepted only when the index and the working tree exactly matches the currently checked out commit, in which case the index and the working tree are updated to match the pushed commit. Otherwise the push is refused. This hook can be used to customize this "push-to-deploy" logic. The hook receives the commit with which the tip of the current branch is going to be updated, and can decide what kind of local changes are acceptable and how to update the index and the working tree to match the updated tip of the current branch. For example, the hook can simply run `git read-tree -u -m HEAD "$1"` in order to emulate 'git fetch' that is run in the reverse direction with `git push`, as the two-tree form of `read-tree -u -m` is essentially the same as `git checkout` that switches branches while keeping the local changes in the working tree that do not interfere with the difference between the branches. Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'builtin/mailinfo.c')
0 files changed, 0 insertions, 0 deletions