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
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 PS1="$_WORKONBRANCH_OLD_PS1"
unset CURRENT_BRANCH
} function _branch_check_if_active {
if [ "$CURRENT_BRANCH" = "" ]
then
echo "No branch activated"
return
fi
return
} function branch_push_for {
OPTIND=
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-));
_branch_check_if_active || return
git push --receive-pack="$RECIVE_PACK" origin "HEAD:refs/for/$CURRENT_BRANCH" $@
} function branch_push_heads {
_branch_check_if_active || return
git push origin "HEAD:refs/heads/$CURRENT_BRANCH" $@
} function branch_push_drafts {
_branch_check_if_active || return
git push origin "HEAD:refs/drafts/$CURRENT_BRANCH" $@
} function branch_checkout {
if [ "$1" != "" ]
then
workonbranch $
fi
_branch_check_if_active || return
git fetch -p && git checkout "origin/$CURRENT_BRANCH"
} function close_branch {
if [ "$1" = "" ]
then
echo "close_branch [branch name]"
exit
fi
branch_checkout master && git merge origin/$ --no-ff && branch_push_heads && git push origin :refs/heads/$
} _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 ]] ; then
COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
return
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
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
gerrit_bash_commands.sh的更多相关文章
- 数据库备份并分离日志表(按月)sh 脚本
#!/bin/sh year=`date +%Y` month=`date +%m` day=`date +%d` hour=`date +%H` dir="/data/dbbackup/f ...
- Linux下如何查找.sh后缀的文件
find / -name *.sh或locate *.shfind 与locate的区别:locate 配合数据库查看文件位置 find 实际搜寻硬盘查询文件名称
- sh 测试网段在线主机
yum install nmap nmap -sP 192.168.21.1/24 查看网段在线主机 grep -vwf file1 file2 文件内容比较 #!/bin/bash # day=` ...
- Maven打包生成可运行bat/sh脚本文件
利用Maven的appassembler-maven-plugin插件,就可以实现自动打包可运行的脚本,还可以跨平台. <plugin> <groupId>org ...
- 记一个简单的保护if 的sh脚本
真是坑爹,就下面的sh,竟然也写了很久! if [ `pwd` != '/usr/xx/bin/tomcat' ] then echo "rstall is not allowed in c ...
- 主机巡检脚本:OSWatcher.sh
主机巡检脚本:OSWatcher.sh 2016-09-26更新,目前该脚本只支持Linux操作系统,后续有需求可以继续完善. 注意: 经测试,普通用户执行脚本可以顺利执行前9项检查: 第10项,普通 ...
- Oracle巡检脚本:ORAWatcher.sh
Oracle巡检脚本:ORAWatcher.sh #!/usr/bin/ksh echo "" echo "ORAWatcher Version:1.0.1" ...
- 解决:/bin/sh: 1: /home/**/custom_app.sh: Permission denied错误
出现如下错误,一般是执行权限不够. /bin/sh: : /home/custom_app.sh: Permission denied 解决方法是:cd 到此文件目录,对提示的文件赋予可执行权限或读写 ...
- SH Script Grammar
http://linux.about.com/library/cmd/blcmdl1_sh.htm http://pubs.opengroup.org/onlinepubs/9699919799/ut ...
随机推荐
- QIIME1 聚OTU
qiime 本身不提供聚类的算法,它只是对其他聚otu软件的封装 根据聚类软件的算法,分成了3个方向: de novo: pick_de_novo_otus.py ...
- Java多线程——可阻塞的队列BlockingQueue
阻塞队列与Semaphore有些相似,但也不同,阻塞队列是一方存放数据,另一方释放数据,Semaphore通常则是由同一方设置和释放信号量. ArrayBlockingQueue 只有put方法和ta ...
- Android 监听屏幕唤醒和关闭的广播
今天希望应用程序的服务运行时,可以监听到屏幕的唤醒.继续百度学习法,连同监听闭幕关闭也一同学习了. 此种情况需要动态注册系统广播.在AndroidManifest.xml中静态注册的实际运行中无效. ...
- oauth 2.0转
原文:http://www.ruanyifeng.com/blog/2014/05/oauth_2_0.html OAuth是一个关于授权(authorization)的开放网络标准,在全世界得到广泛 ...
- (转)Java程序员应该知道的10个调试技巧
(转自 酷勤网 – 程序员的那点事!http://www.kuqin.com/) 试可以帮助识别和解决应用程序缺陷,在本文中,作者将使用大家常用的的开发工具Eclipse来调试Java应用程序.但这里 ...
- NAS 创建大文件
不是很懂,但是管用.先记录下来. http://www.111cn.net/sys/linux/55537.htm
- spring测试junit事务管理及spring面向接口注入和实现类单独注入(无实现接口),实现类实现接口而实现类单独注入否则会报错。
1.根据日志分析,spring junit默认是自动回滚,不对数据库做任何的操作. 18:16:57.648 [main] DEBUG o.s.j.d.DataSourceTransactionMan ...
- 如何在Java 环境下使用 HTTP 协议收发 MQ 消息
1. 准备环境在工程 POM 文件添加 HTTP Java 客户端的依赖. <dependency> <groupId>org.eclipse.jetty</groupI ...
- python缓存装饰器,第二种方式(二)
来个简单的装饰器 def cached_method_result(fun): """方法的结果缓存装饰器""" @wraps(fun) d ...
- android中sharedPreferences的用法(转)
SharedPreferences介绍: 做软件开发应该都知道,很多软件会有配置文件,里面存放这程序运行当中的各个属性值,由于其配置信息并不多,如果采用数据库来存放并不划算,因为数据库连接跟操作等 ...