Author: rpaulo
Date: Thu May 15 03:47:52 2014
New Revision: 266115
URL: http://svnweb.freebsd.org/changeset/base/266115

Log:
  Add a new target cscope-hook.
  
  This adds a Mercurial hook to automatically update the cscope data base every
  time you pull, switch branch, or update.

Modified:
  head/sys/Makefile

Modified: head/sys/Makefile
==============================================================================
--- head/sys/Makefile   Thu May 15 03:30:03 2014        (r266114)
+++ head/sys/Makefile   Thu May 15 03:47:52 2014        (r266115)
@@ -47,6 +47,25 @@ ${.CURDIR}/cscope.files: .PHONY
 cscope-clean:
        rm -f cscope.files cscope.out cscope.in.out cscope.po.out
 
+#
+# Installs SCM hooks to update the cscope database every time the source tree
+# is updated.
+# cscope understands incremental updates, so it's considerably faster when only
+# a few files have changed.
+#
+HG_DIR=${.CURDIR}/../.hg
+HG_HOOK=if [ \$$HG_ERROR -eq 0 ]; then cd sys && make -m ../share/mk cscope; fi
+cscope-hook:
+       @if [ -d ${HG_DIR} ]; then                                      \
+               if [ "`grep hooks ${HG_DIR}/hgrc`" = "" ]; then         \
+                       echo "[hooks]" >> ${HG_DIR}/hgrc;               \
+                       echo "update = ${HG_HOOK}" >> ${HG_DIR}/hgrc;   \
+                       echo "Hook installed in ${HG_DIR}/hgrc";        \
+               else                                                    \
+                       echo "Mercurial update hook already exists.";   \
+               fi;                                                     \
+       fi
+
 # You need the devel/global and one of editor/emacs* ports for that.
 TAGS ${.CURDIR}/TAGS: ${.CURDIR}/cscope.files
        rm -f ${.CURDIR}/TAGS
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to