|
9 | 9 | force=
|
10 | 10 | remote=$(git config --get --default origin ptt.remote)
|
11 | 11 | query_only=0
|
| 12 | +shortlen=10 |
12 | 13 |
|
13 | 14 | while getopts qfr: ch; do
|
14 | 15 | case $ch in
|
@@ -43,7 +44,16 @@ for rev in $(git rev-list "$@" | tac ); do
|
43 | 44 | continue
|
44 | 45 | fi
|
45 | 46 |
|
46 | | - git show -q --format="%h %s -> %Cred${remote}/${target}%Creset" $rev |
| 47 | + target_rev=$(git rev-parse -q ${remote}/${target} || echo none) |
| 48 | + if [[ $target_rev == $rev ]]; then |
| 49 | + target_rev_color=green |
| 50 | + else |
| 51 | + target_rev_color=red |
| 52 | + fi |
| 53 | + target_rev_fmt="%C${target_rev_color}${target_rev:0:$shortlen}%Creset" |
| 54 | + rev_fmt="${rev:0:$shortlen}" |
| 55 | + |
| 56 | + git show -q --format="* %s%n ${rev_fmt} -> ${target_rev_fmt} %Cblue${remote}/${target}%Creset" $rev |
47 | 57 | (( $query_only )) && continue
|
48 | 58 | git push ${force} ${remote} ${rev}:refs/heads/${target}
|
49 | 59 | done
|
0 commit comments