现在工作环境的情况是这样:
虽然很奇怪,但是组织上就是要求这样工作的.
2个svn root:
一个是工作的svn a, 另一个是其他用途的SVN b
在a 提交以后, b也要提交一份.只要保证内容一致就可以了
写了一个同步脚本,完成这个活.
[quote]$CRM 是工作目录 , $LOCAL 是另一个需要同步的 svn, 需要在环境变量中定义[/quote]
接着要在测试服务器中,先更新svn 然后再 编译文件
虽然很奇怪,但是组织上就是要求这样工作的.
2个svn root:
一个是工作的svn a, 另一个是其他用途的SVN b
在a 提交以后, b也要提交一份.只要保证内容一致就可以了
写了一个同步脚本,完成这个活.
[quote]$CRM 是工作目录 , $LOCAL 是另一个需要同步的 svn, 需要在环境变量中定义[/quote]
接着要在测试服务器中,先更新svn 然后再 编译文件
#!/bin/bash
filepath=$(pwd)
TEST_SERVER=XX.XX.XX.XX #服务器地址
LOGIN_NAME=XX #登录名
PASS=XX #登录密码
if echo "$filepath" | grep $CRM
then
svn ci -m "$1 "
fpath=${filepath##*CRM/} #过滤实际要同步的目录
dst_path="$LOCAL_CRM/$fpath" #目标目录
echo $dst_path
rsync -r -v -C . $dst_path
cd $dst_path
svn up
svn st
echo "commit other? [(y)es]/(n)o:"
read flag
#echo $flag
if [[ $flag == n* ]]
then
echo bye
exit
fi
echo "go commit.."
svn ci -m "$1 "
# 在测试服务器上编译
expect <<EOF
spawn telnet $TEST_SERVER
expect "login: "
send "$LOGIN_NAME\r"
expect "ssword: "
send "$PASS\r"
expect "$ "
send "cd $fpath\r"
expect "$ "
send "svn up && make && make install\r"
expect "$ "
send "exit\r"
expect eof
EOF
else
echo "你处在错误的目录!"
fi