Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

git: add missing git hook scripts from SourceForge

  We've been using these for a while now, but I neglected to stash copies in
  the repository.

  Also instructions for updating them, since it isn't the most intuitive thing
  in the world.
  • Loading branch information...
commit 1e9235d7f49e1229689c658ccfdf38057d6f5d88 1 parent dd5c055
@nikodemus authored
Showing with 60 additions and 0 deletions.
  1. +10 −0 git/README
  2. +11 −0 git/post-receive
  3. +39 −0 git/update
View
10 git/README
@@ -0,0 +1,10 @@
+SBCL Git Hooks
+
+These scripts live in /home/scm_git/s/sb/sbcl/sbcl.git/hooks on
+SourceForge, and have nothing to do with SBCL as such -- and
+everything to do with developer convenience and maintenance.
+
+To push updates there:
+
+ ssh -t <sfuser>,sbcl@shell.sourceforge.net create
+ scp <script> <sfuser>,sbcl@shell.sourceforge.net:/home/scm_git/s/sb/sbcl/sbcl.git/hooks/
View
11 git/post-receive
@@ -0,0 +1,11 @@
+#!/bin/sh
+#
+# The "post-receive" script is run after receive-pack has accepted a pack
+# and the repository has been updated. It is passed arguments in through
+# stdin in the form
+# <oldrev> <newrev> <refname>
+# For example:
+# aa453216d1b3e49e7f6f98441fa56946ddcd6a20 68f7abf4e6f922807889f52bc043ecd31b79f814 refs/heads/master
+#
+
+hooks/post-receive-email
View
39 git/update
@@ -0,0 +1,39 @@
+#!/bin/sh
+
+# --- Command line
+refname="$1"
+oldrev="$2"
+newrev="$3"
+
+# --- Safety check
+if [ -z "$GIT_DIR" ]; then
+ echo "Don't run this script from the command line." >&2
+ echo " (if you want, you could supply GIT_DIR then run" >&2
+ echo " $0 <ref> <oldrev> <newrev>)" >&2
+ exit 1
+fi
+
+if [ -z "$refname" -o -z "$oldrev" -o -z "$newrev" ]; then
+ echo "Usage: $0 <ref> <oldrev> <newrev>" >&2
+ exit 1
+fi
+
+# Don't allow merge commits on master
+if [ "$refname" = "refs/heads/master" ]
+then
+ for rev in $(git rev-list $newrev --not $oldrev)
+ do
+ echo -n "Checking: $rev"
+ if git rev-parse --verify --quiet $rev^2 > /dev/null
+ then
+ echo " (merge!)"
+ echo
+ echo "Merges not allowed on master. Rebase your changes instead."
+ echo
+ exit 1
+ else
+ echo " (ok)"
+ fi
+ done
+fi
+
Please sign in to comment.
Something went wrong with that request. Please try again.