我正在尝试设置一个svn来将文件导出到现有服务器。
因为我的公司服务器是实时的并且巨大的已经运行了好几年,我不能wipe
整个网络服务器和做一个SVN update
服务器文件太大和内容自定义文件。
我现在要做的是commit
在服务器 A 上以及scp
向服务器 B 提交的最新文件,因此该文件将位于 Web 服务器方向。我尝试按照以下方式进行操作,但失败了,有什么更好的方法可以推荐我吗?我不是很擅长做配置。
这是我在提交后尝试做的事情:
repository="file:///var/www/html/svn/testrepo/"
revision_from=$2
target_directory="/home/SVN/"
expr $((revision_from--))
rm -R -f $target_directory
for line in `svn diff --summarize -r $revision_from:HEAD $repository | grep "^[AM]"`
do
if [ $line != "A" ] && [ $line != "AM" ] && [ $line != "M" ]; then
filename=`echo "$line" |sed "s|$repository||g"`
# don't export if it's a directory we've already created
if [ ! -d $target_directory$filename ]; then
directory=`dirname $filename`
mkdir -p $target_directory$directory
svn export --force $line $target_directory$filename
fi
fi
done
scp -r -P 1221 /home/SVN/* svnadmin@192.168.0.1:/home/svnadmin/
ssh -t -t -p 1221 svnadmin@192.168.0.1 \
sudo -u apache /bin/cp -rf /home/svnadmin/* /path/to/web/
如果您需要更多信息,请告诉我~
编辑:将脚本修改为最新
Edit2:现在我收到了这个错误,它似乎没有执行 /bin/cp
post-commit hook failed (exit code 1) with output:
tcgetattr: Inappropriate ioctl for device
Connection to 192.168.0.1 closed.