The documentation as-is does not mention that the pre-push hook is
executed even when there is nothing to push. This can lead a new
reader to believe there will always be lines fed to the script's
standard input and cause minor confusion as to what is happening
when there are no lines provided to the pre-push script.
Signed-off-by: David Cowden <dco...@gmail.com>
I'm not sure if I've covered every case here. If there are more cases to
consider, please let me know and I can update to include them.
Documentation/githooks.txt | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/Documentation/githooks.txt b/Documentation/githooks.txt
index d954bf6..1fd6da9 100644
@@ -203,6 +203,15 @@ SHA-1>` will be 40 `0`. If the local commit was specified
by something other
than a name which could be expanded (such as `HEAD~`, or a SHA-1) it will be
supplied as it was originally given.
+The hook is executed regardless of whether changes will actually be pushed or
+not. This may happen when 'git push' is called and:
+ - the remote ref is already up to date, or
+ - pushing to the remote ref cannot be handled by a simple fast-forward
+In other words, the script is called for every push. In the event that nothing
+is to be pushed, no data will be provided on the script's standard input.
If this hook exits with a non-zero status, 'git push' will abort without
pushing anything. Information about why the push is rejected may be sent
to the user by writing to standard error.
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majord...@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html