Advertisement
Guest User

gerrit_retarget_changes

a guest
Mar 5th, 2015
232
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 0.88 KB | None | 0 0
  1. ossi@ugly:~/bin > cat gerrit_retarget_changes
  2. #! /bin/sh
  3.  
  4. # this is for gerrit 2.7
  5.  
  6. if [ $# -lt 3 ]; then
  7.     echo "Usage: $0 old_branch new_branch change..." >&2
  8.     exit 3
  9. fi
  10.  
  11. oldbranch=$1
  12. shift
  13. newbranch=$1
  14. shift
  15. qry="change_key in ('$1'"
  16. shift
  17. while test -n "$1"; do
  18.     qry="$qry, '$1'"
  19.     shift
  20. done
  21. qry="$qry)"
  22.  
  23. fails=$(
  24. ssh codereview.qt-project.org gerrit gsql <<EOF | sed -n 's,^ \([a-z0-9]\{40\,\}\)$,\1,ip'
  25. select change_key from changes where dest_branch_name = 'refs/heads/$newbranch' and $qry;
  26. EOF
  27. )
  28. if test -n "$fails"; then
  29.     echo "These changes already exist on $newbranch:" $fails
  30.     exit 1
  31. fi
  32. ssh codereview.qt-project.org gerrit gsql <<EOF
  33. update changes set dest_branch_name = 'refs/heads/$newbranch' where dest_branch_name = 'refs/heads/$oldbranch' and $qry;
  34. EOF
  35. echo
  36. ssh codereview.qt-project.org gerrit flush-caches --cache changes
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement