diff options
author | evan@chromium.org <evan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-02-19 19:03:30 +0000 |
---|---|---|
committer | evan@chromium.org <evan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-02-19 19:03:30 +0000 |
commit | 8a3e68a604284f1b20fa9d18633f8f5eb4d573e0 (patch) | |
tree | be31ee0bcedb161b728b1c6b1fbb160c17840ab4 | |
parent | 47115104dc1a6a06b85dc23cc4d5993847ea0fa7 (diff) | |
download | chromium_src-8a3e68a604284f1b20fa9d18633f8f5eb4d573e0.zip chromium_src-8a3e68a604284f1b20fa9d18633f8f5eb4d573e0.tar.gz chromium_src-8a3e68a604284f1b20fa9d18633f8f5eb4d573e0.tar.bz2 |
git: add some hooks under tools/git
These hooks will warn you if DEPS changes when you switch branches.
Review URL: http://codereview.chromium.org/650030
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@39469 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r-- | tools/git/README | 8 | ||||
-rw-r--r-- | tools/git/git-utils.sh | 17 | ||||
-rwxr-xr-x | tools/git/post-checkout | 22 | ||||
-rwxr-xr-x | tools/git/post-merge | 12 |
4 files changed, 59 insertions, 0 deletions
diff --git a/tools/git/README b/tools/git/README new file mode 100644 index 0000000..18d6da7 --- /dev/null +++ b/tools/git/README @@ -0,0 +1,8 @@ +This directory contains some helpful Git hooks. + +Currently, they warn you about DEPS modifications so you will remember +to run "gclient sync". + +To install these Git hooks, create symlinks like so: + ln -s $(pwd)/post-checkout $(git rev-parse --git-dir)/hooks + ln -s $(pwd)/post-merge $(git rev-parse --git-dir)/hooks diff --git a/tools/git/git-utils.sh b/tools/git/git-utils.sh new file mode 100644 index 0000000..d89dc5d --- /dev/null +++ b/tools/git/git-utils.sh @@ -0,0 +1,17 @@ +#!/bin/bash +# Copyright (c) 2010 The Chromium Authors. All rights reserved. +# Use of this source code is governed by a BSD-style license that can be +# found in the LICENSE file. + +TPUT=$(which tput) +if test -x "$TPUT" && $TPUT setaf 1 >/dev/null ; then + RED="$($TPUT setaf 1)" + NORMAL="$($TPUT op)" +else + RED= + NORMAL= +fi + +warn() { + echo "${RED}WARNING:${NORMAL} $@" +} diff --git a/tools/git/post-checkout b/tools/git/post-checkout new file mode 100755 index 0000000..452eb48 --- /dev/null +++ b/tools/git/post-checkout @@ -0,0 +1,22 @@ +#!/bin/bash +# Copyright (c) 2010 The Chromium Authors. All rights reserved. +# Use of this source code is governed by a BSD-style license that can be +# found in the LICENSE file. + +script=$(readlink $0) +source $(dirname ${script:-$0})/git-utils.sh + +old_ref=$1 # Previous HEAD. +new_ref=$2 # Current HEAD. +branch_switch=$3 # Whether we switched branches. + +if [ $old_ref == $new_ref ]; then + if ! git diff-index --quiet HEAD $(git rev-parse --show-cdup)DEPS; then + warn "DEPS has local modifications; do you need to re-run gclient sync?" + fi +else + if git diff-tree $old_ref $new_ref | grep -qs $'\tDEPS$'; then + warn "DEPS has changed; you probably need to re-run gclient sync." + fi +fi + diff --git a/tools/git/post-merge b/tools/git/post-merge new file mode 100755 index 0000000..8b774ce --- /dev/null +++ b/tools/git/post-merge @@ -0,0 +1,12 @@ +#!/bin/bash +# Copyright (c) 2010 The Chromium Authors. All rights reserved. +# Use of this source code is governed by a BSD-style license that can be +# found in the LICENSE file. + +script=$(readlink $0) +source $(dirname ${script:-$0})/git-utils.sh + +if git diff-tree ORIG_HEAD HEAD | grep -qs $'\tDEPS$'; then + warn "DEPS has changed; you probably need to re-run gclient sync." +fi + |