zoukankan      html  css  js  c++  java
  • gerrit_bash_commands.sh

    https://github.com/tomwys/gerrit-bash-commands

    gerrit_bash_commands.sh

    # Author: Tomasz Wysocki <tomasz@wysocki.info>
    function workonbranch {
        if [ "$1" = "" ]
        then
            echo "Usage: workonbranch [branch name]"
            return 1
        fi
        if [ "$CURRENT_BRANCH" != "" ]
        then
            deactivatebranch
        fi
        _WORKONBRANCH_OLD_PS1="$PS1"
        CURRENT_BRANCH="$1"
        PS1="[$CURRENT_BRANCH]$PS1"
    }
    
    function deactivatebranch {
        _branch_check_if_active || return 1
    
        PS1="$_WORKONBRANCH_OLD_PS1"
        unset CURRENT_BRANCH
    }
    
    function _branch_check_if_active {
        if [ "$CURRENT_BRANCH" = "" ]
        then
            echo "No branch activated"
            return 1
        fi
        return 0
    }
    
    function branch_push_for {
        OPTIND=0
        RECIVE_PACK='git receive-pack'
        while getopts "r:" O; do
            case "$O" in
              r)
                RECIVE_PACK="$RECIVE_PACK --reviewer $OPTARG"
                ;;
              c)
                RECIVE_PACK="$RECIVE_PACK --cc $OPTARG"
                ;;
            esac
        done;
        shift $((OPTIND-1));
        _branch_check_if_active || return 1
        git push --receive-pack="$RECIVE_PACK" origin "HEAD:refs/for/$CURRENT_BRANCH" $@
    }
    
    function branch_push_heads {
        _branch_check_if_active || return 1
        git push origin "HEAD:refs/heads/$CURRENT_BRANCH" $@
    }
    
    function branch_push_drafts {
        _branch_check_if_active || return 1
        git push origin "HEAD:refs/drafts/$CURRENT_BRANCH" $@
    }
    
    function branch_checkout {
        if [ "$1" != "" ]
        then
            workonbranch $1
        fi
        _branch_check_if_active || return 1
        git fetch -p && git checkout "origin/$CURRENT_BRANCH"
    }
    
    function close_branch {
        if [ "$1" = "" ]
        then
            echo "close_branch [branch name]"
            exit 1
        fi
        branch_checkout master && git merge origin/$1 --no-ff && branch_push_heads && git push origin :refs/heads/$1
    }
    
    _complete_branch() {
        # bash-completion for branch name
        # based on: http://devmanual.gentoo.org/tasks-reference/completion/index.html
        local cur prev opts
        COMPREPLY=()
        cur="${COMP_WORDS[COMP_CWORD]}"
        prev="${COMP_WORDS[COMP_CWORD-1]}"
        opts=$(git branch -r| grep origin | grep -v HEAD | sed 's/  origin///')
    
        if [[ ${cur} == -* || ${COMP_CWORD} -eq 1 ]] ; then
            COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
            return 0
        fi
    }
    _complete_user() {
        # bash-completion for git user
        # based on: http://devmanual.gentoo.org/tasks-reference/completion/index.html
        local cur prev opts
        COMPREPLY=()
        prev="${COMP_WORDS[$COMP_CWORD-1]}"
        cur="${COMP_WORDS[$COMP_CWORD]}"
    
        if [ "$prev" = "-r" -o "$prev" = "-c" ] ; then
            opts=$(git log --pretty=format:'%ae' | sort | uniq)
            COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
            return 0
        fi
    }
    complete -F _complete_branch workonbranch
    complete -F _complete_branch branch_checkout
    complete -F _complete_branch close_branch
    complete -F _complete_user branch_push_for
  • 相关阅读:
    使用cygwin中的awk工具进行mysql binlog日志查看[利刃篇]
    设置win版vim启动项[利刃篇]
    php cli模式和浏览器访问下加载php.ini文件的注意事项[架构篇]
    sublime text 3中安装ctags支持函数跳转,安装convertToUtf8支持中文步骤[工具篇]
    在notepad++中使用正则匹配功能(一-龥!-~) 中文[利刃篇]
    微软职位内部推荐-SENIOR SOFTWARE ENGINEER
    微软职位内部推荐-Senior SDE
    微软职位内部推荐-SDEII
    微软职位内部推荐-SOFTWARE ENGINEER II
    微软职位内部推荐-SENIOR SOFTWARE ENGINEER
  • 原文地址:https://www.cnblogs.com/onelikeone/p/6857867.html
Copyright © 2011-2022 走看看