From: Bojun Chen <bojun.cbj@xxxxxxxxxxxxxxx> Rewrite log messages to more clearly describe the problem. Chen Bojun (1): receive-pack: purge temporary data if no command is ready to run builtin/receive-pack.c | 9 +++++++++ t/t5516-fetch-push.sh | 8 ++++++++ 2 files changed, 17 insertions(+) Range-diff against v2: 1: 72f49f1792 ! 1: 0b5793d1ea receive-pack: purge temporary data if no command is ready to run @@ Metadata ## Commit message ## receive-pack: purge temporary data if no command is ready to run - When pushing a hidden ref, e.g.: + When pushing to "receive-pack", commands may have already been marked + with error_string or skip_update before being fed to the "pre-receive" + hook. E.g.: - $ git push origin HEAD:refs/hidden/foo + * inconsistent push-options for signed push. + * not permited shallow updates. + * encounter connectivity issues. + * push to hidden references. - "receive-pack" will reject our request with an error message like this: + Take pushing to hidden references as an example. - ! [remote rejected] HEAD -> refs/hidden/foo (deny updating a hidden ref) + In order to reduce the size of reference advertisement for git-push from + a client which does not support protocol v2 and push negotiation, the + administrator may set certain config variables to hide some references + like: + + $ git config --system --add receive.hideRefs refs/merge-requests + + Then, if a user made a push like this: + + $ git push origin HEAD:refs/merge-requests/123/head + + "receive-pack" would reject the request with an error message like this: + + ! [remote rejected] HEAD -> refs/merge-requests/123/head + (deny updating a hidden ref) The remote side ("git-receive-pack") will not create the hidden ref as expected, but the pack file sent by "git-send-pack" is left inside the -- 2.32.0 (Apple Git-132)