| Index: third_party/re2/lib/git/commit-msg.hook
|
| diff --git a/third_party/re2/lib/git/commit-msg.hook b/third_party/re2/lib/git/commit-msg.hook
|
| new file mode 100755
|
| index 0000000000000000000000000000000000000000..985016b5b6887cf4352aa55349c379e20c8697e8
|
| --- /dev/null
|
| +++ b/third_party/re2/lib/git/commit-msg.hook
|
| @@ -0,0 +1,104 @@
|
| +#!/bin/sh
|
| +# From Gerrit Code Review 2.2.1
|
| +#
|
| +# Part of Gerrit Code Review (http://code.google.com/p/gerrit/)
|
| +#
|
| +# Copyright (C) 2009 The Android Open Source Project
|
| +#
|
| +# Licensed under the Apache License, Version 2.0 (the "License");
|
| +# you may not use this file except in compliance with the License.
|
| +# You may obtain a copy of the License at
|
| +#
|
| +# http://www.apache.org/licenses/LICENSE-2.0
|
| +#
|
| +# Unless required by applicable law or agreed to in writing, software
|
| +# distributed under the License is distributed on an "AS IS" BASIS,
|
| +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
| +# See the License for the specific language governing permissions and
|
| +# limitations under the License.
|
| +#
|
| +
|
| +CHANGE_ID_AFTER="Bug|Issue"
|
| +MSG="$1"
|
| +
|
| +# Check for, and add if missing, a unique Change-Id
|
| +#
|
| +add_ChangeId() {
|
| + clean_message=`sed -e '
|
| + /^diff --git a\/.*/{
|
| + s///
|
| + q
|
| + }
|
| + /^Signed-off-by:/d
|
| + /^#/d
|
| + ' "$MSG" | git stripspace`
|
| + if test -z "$clean_message"
|
| + then
|
| + return
|
| + fi
|
| +
|
| + if grep -i '^Change-Id:' "$MSG" >/dev/null
|
| + then
|
| + return
|
| + fi
|
| +
|
| + id=`_gen_ChangeId`
|
| + perl -e '
|
| + $MSG = shift;
|
| + $id = shift;
|
| + $CHANGE_ID_AFTER = shift;
|
| +
|
| + undef $/;
|
| + open(I, $MSG); $_ = <I>; close I;
|
| + s|^diff --git a/.*||ms;
|
| + s|^#.*$||mg;
|
| + exit unless $_;
|
| +
|
| + @message = split /\n/;
|
| + $haveFooter = 0;
|
| + $startFooter = @message;
|
| + for($line = @message - 1; $line >= 0; $line--) {
|
| + $_ = $message[$line];
|
| +
|
| + if (/^[a-zA-Z0-9-]+:/ && !m,^[a-z0-9-]+://,) {
|
| + $haveFooter++;
|
| + next;
|
| + }
|
| + next if /^[ []/;
|
| + $startFooter = $line if ($haveFooter && /^\r?$/);
|
| + last;
|
| + }
|
| +
|
| + @footer = @message[$startFooter+1..@message];
|
| + @message = @message[0..$startFooter];
|
| + push(@footer, "") unless @footer;
|
| +
|
| + for ($line = 0; $line < @footer; $line++) {
|
| + $_ = $footer[$line];
|
| + next if /^($CHANGE_ID_AFTER):/i;
|
| + last;
|
| + }
|
| + splice(@footer, $line, 0, "Change-Id: I$id");
|
| +
|
| + $_ = join("\n", @message, @footer);
|
| + open(O, ">$MSG"); print O; close O;
|
| + ' "$MSG" "$id" "$CHANGE_ID_AFTER"
|
| +}
|
| +_gen_ChangeIdInput() {
|
| + echo "tree `git write-tree`"
|
| + if parent=`git rev-parse HEAD^0 2>/dev/null`
|
| + then
|
| + echo "parent $parent"
|
| + fi
|
| + echo "author `git var GIT_AUTHOR_IDENT`"
|
| + echo "committer `git var GIT_COMMITTER_IDENT`"
|
| + echo
|
| + printf '%s' "$clean_message"
|
| +}
|
| +_gen_ChangeId() {
|
| + _gen_ChangeIdInput |
|
| + git hash-object -t commit --stdin
|
| +}
|
| +
|
| +
|
| +add_ChangeId
|
|
|