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 ...
随机推荐
- 使用 mysql_use_result 还是使用 mysql_store_result?
From: http://my.oschina.net/moooofly/blog/186456 本文整理了关于“使用 mysql_use_result 还是 mysql_store_result”的 ...
- 分布式缓存系统 Memcached 整体架构
分布式缓存系统 Memcached整体架构 Memcached经验分享[架构方向] Memcached 及 Redis 架构分析和比较
- memcached能获取所有的key吗
memcached能获取所有的key吗 Memcache 查看列出所有key方法 Memcached中获取所有的key 特别要注意:memcached保存的值需要序列化,否则是无法保存的,而且是不会报 ...
- zip压缩工具 tar打包 打包并压缩
6.5 zip压缩工具 6.6 tar打包 6.7 打包并压缩 zip压缩工具 xz,bzip2,gzip都不支持压缩目录 zip可以压缩目录 压缩文件 zip 2.txt.zip 2.txt [ ...
- js设置随机切换背景图片
<script> var imgs =["http://images.cnblogs.com/cnblogs_com/xiaobo-Linux/1112236/o_2.jpg&q ...
- UpdateData()用法
一.总结UpdateData()函数 UpdateData(true);//用于将屏幕上控件中的数据交换到变量中. UpdateData(false);//用于将数据在屏幕中对应控件中显示出来. ...
- 非抢占式RCU实现(二),解释:为什么 RCU_NEXT_SIZE 宏值是4?
参考:2.6.34 一个很奇怪的问题. 没有查找到为什么 RCU_NEXT_SIZE的值为4的原因(包括Documentation),主要是在rcu_state中定义了一个四级的list,感到很有意思 ...
- [转]Python多线程与多线程中join()的用法
https://www.cnblogs.com/cnkai/p/7504980.html Python多线程与多进程中join()方法的效果是相同的. 下面仅以多线程为例: 首先需要明确几个概念: 知 ...
- debian、ubuntu:使用apt包管理器可能存在的问题! 让新手望而却步!
apt包管理器说好真好,说不好真不好. 最近在debian9.ubuntu18.04上安装oracle 10g 玩. 怎么都准备不好安装环境.原因就是i386构架体系的deb包总安装不正确! baid ...
- C++ 保存Excel文件(带密码保护)
最近有客户需求报表保存为xls的功能,需要保存的文件设置密码保护,特进行尝试! Workbook.SaveAs method (Excel) 参数详情:https://docs.microsoft.c ...