diff --git a/dev/proto.sh b/dev/proto.sh index 8d8a5b184a3..71e8c125530 100755 --- a/dev/proto.sh +++ b/dev/proto.sh @@ -14,43 +14,27 @@ # limitations under the License. # -kvproto_hash=58f2ac94aa38f49676dd628fbcc1d669a77a62ac -raft_rs_hash=b9891b673573fad77ebcf9bbe0969cf945841926 -tipb_hash=c4d518eb1d60c21f05b028b36729e64610346dac +proto_dir="proto" -kvproto_dir="kvproto" -raft_rs_dir="raft-rs" -tipb_dir="tipb" - -CURRENT_DIR=$(pwd) -TIKV_CLIENT_HOME="$( - cd "$(dirname "$0")"/.. || exit - pwd -)" -cd "$TIKV_CLIENT_HOME" || exit - -if [ -d "$kvproto_dir" ]; then - git -C ${kvproto_dir} fetch -p - git pull --all -else - git clone https://github.com/pingcap/kvproto ${kvproto_dir} +if [ -d $proto_dir ]; then + rm -r $proto_dir fi -git -C ${kvproto_dir} checkout ${kvproto_hash} -if [ -d "$raft_rs_dir" ]; then - git -C ${raft_rs_dir} fetch -p - git pull --all -else - git clone https://github.com/pingcap/raft-rs ${raft_rs_dir} -fi -git -C ${raft_rs_dir} checkout ${raft_rs_hash} +repos=("https://github.com/pingcap/kvproto" "https://github.com/pingcap/raft-rs" "https://github.com/pingcap/tipb") +commits=(58f2ac94aa38f49676dd628fbcc1d669a77a62ac b9891b673573fad77ebcf9bbe0969cf945841926 c4d518eb1d60c21f05b028b36729e64610346dac) -if [ -d "$tipb_dir" ]; then - git -C ${tipb_dir} fetch -p - git pull --all -else - git clone https://github.com/pingcap/tipb ${tipb_dir} -fi -git -C ${tipb_dir} checkout ${tipb_hash} +for i in "${!repos[@]}"; do + repo_name=$(basename ${repos[$i]}) + git_command="git -C $repo_name" + + if [ -d "$repo_name" ]; then + $git_command checkout `basename $($git_command symbolic-ref --short refs/remotes/origin/HEAD)` + $git_command fetch --all + $git_command pull --all + else + git clone ${repos[$i]} $repo_name + $git_command fetch -p + fi -cd "$CURRENT_DIR" || exit + $git_command checkout ${commits[$i]} +done