#!/bin/sh # From Gerrit Code Review v2.0.18-100-g98fc90a # # 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. # MSG="$1" # Check for, and add if missing, a unique Change-Id # add_ChangeId() { if grep '^Change-Id: ' "$MSG" >/dev/null then return fi id=$(_gen_ChangeId) out="$MSG.new" ftt="$MSG.footers" sed -e '2,${ /^[A-Za-z][A-Za-z0-9-]*: /,$d }' <"$MSG" >"$out" sed -ne '2,${ /^[A-Za-z][A-Za-z0-9-]*: /,$p }' <"$MSG" >"$ftt" if ! [ -s "$ftt" ] then echo >>"$out" fi echo "Change-Id: I$id" >>"$out" cat "$ftt" >>"$out" mv -f "$out" "$MSG" rm -f "$out" "$ftt" } _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 cat "$MSG" } _gen_ChangeId() { _gen_ChangeIdInput | git hash-object -t commit --stdin } add_ChangeId