diff options
| author | Anand Avati <avati@gluster.com> | 2011-07-18 16:09:58 +0530 | 
|---|---|---|
| committer | Anand Avati <avati@gluster.com> | 2011-07-18 16:09:58 +0530 | 
| commit | 4c31a8662570a60260b36938d7f67d114befef4e (patch) | |
| tree | 1408e6cf90bf379ade5f0fef1a443d564bb1c2f3 | |
| parent | b53d76e392f0b88a7d135f099fe52ae933050719 (diff) | |
s/Patchwork/Gerrit/
Change-Id: I228295f1c33e2c4d991ef6810e2332c3299ca2b7
| -rwxr-xr-x | commit.sh | 4 | ||||
| -rwxr-xr-x | format-patch.sh | 60 | ||||
| -rwxr-xr-x | rfc.sh | 104 | 
3 files changed, 104 insertions, 64 deletions
diff --git a/commit.sh b/commit.sh deleted file mode 100755 index 9cc55c52e..000000000 --- a/commit.sh +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/sh - -export EDITOR="emacs" -git commit -a -e "$@" diff --git a/format-patch.sh b/format-patch.sh deleted file mode 100755 index dc6ff3590..000000000 --- a/format-patch.sh +++ /dev/null @@ -1,60 +0,0 @@ -#!/bin/bash - - -function is_num() -{ -    local num; - -    num="$1"; - -    [ -z "$(echo $num | sed -e 's/[0-9]//g')" ] -} - - -function guess_branch() -{ -    local branch; -    local src_branch; - -    branch=$(git branch | grep '*' | cut -f2 -d' '); - -    if [ $branch = "master" ] ; then -        src_branch="master"; -    else -        src_branch=$(cat .git/logs/refs/heads/$branch | head -n 1 \ -            | sed -r -e 's/.*( [^ ]*)$/\1/g' | cut -f2 -d/); -    fi - -    echo $src_branch -} - - -function main() -{ -    local branch; -    local bug; - -    branch=$(guess_branch); -    echo -    echo "Patches are always to be associated with a bug ID. If there is no   " -    echo "bug filed in bugzilla for this patch, it is highly suggested to file" -    echo "a new bug with a description and reasoning of this patchset. If this" -    echo "is a new feature, then file a new enhancement bug with a brief      " -    echo "summary of the feature as the description." -    echo -    echo -n "Enter bug ID (from http://bugs.gluster.com/): " -    read bug; - -    [ -z "$bug" ] || is_num $bug || { -        log "bug ID should be a valid bug number"; -        exit; -    } - -    if [ -z "$bug" ]; then -        git format-patch -s "$@"; -    else -        git format-patch -s --subject-prefix="PATCH BRANCH:release-3.1 BUG:$bug" "$@"; -    fi -} - -main "$@" @@ -0,0 +1,104 @@ +#!/bin/bash -e + + +branch="release-3.1"; + + +function set_hooks_commit_msg() +{ +    f=".git/hooks/commit-msg"; +    u="http://review.gluster.com/tools/hooks/commit-msg"; + +    if [ -x "$f" ]; then +        return; +    fi + +    curl -o $f $u || wget -O $f $u; + +    chmod +x .git/hooks/commit-msg; +} + + +function is_num() +{ +    local num; + +    num="$1"; + +    [ -z "$(echo $num | sed -e 's/[0-9]//g')" ] +} + + +function rebase_changes() +{ +    git fetch --all; + +    EDITOR=$0 git rebase -i origin/$branch; +} + + +function editor_mode() +{ +    if [ $(basename "$1") = "git-rebase-todo" ]; then +        sed -i 's/^pick /reword /g' "$1"; +        return; +    fi + +    if [ $(basename "$1") = "COMMIT_EDITMSG" ]; then +        if grep -qi '^BUG: ' $1; then +            return; +        fi +        while true; do +            echo Commit: "\"$(head -n 1 $1)\"" +            echo -n "Enter Bug ID: " +            read bug +            if [ -z "$bug" ]; then +                return; +            fi +            if ! is_num "$bug"; then +                echo "Invalid Bug ID ($bug)!!!"; +                continue; +            fi + +            sed -i "s/^\(Change-Id: .*\)$/\1\nBUG: $bug/g" $1; +            return; +        done +    fi + +    cat <<EOF +$0 - editor_mode called on unrecognized file $1 with content: +$(cat $1) +EOF +    return 1; +} + + +function assert_diverge() +{ +    git diff origin/$branch..HEAD | grep -q .; +} + + +function main() +{ +    if [ -e "$1" ]; then +        editor_mode "$@"; +        return; +    fi + +    set_hooks_commit_msg; + +    rebase_changes; + +    assert_diverge; + +    bug=$(git show --format='%b' | grep -i '^BUG: ' | awk '{print $2}'); + +    if [ -z "$bug" ]; then +        git push origin HEAD:refs/for/$branch/rfc; +    else +        git push origin HEAD:refs/for/$branch/bug-$bug; +    fi +} + +main "$@"  | 
