在SVN上提交后,坚持使用SSH

时间:2013-03-13 04:14:52

标签: svn ssh

我正在尝试设置以将文件导出到现有服务器。

因为我的公司服务器已经运行并且已经运行了好几年,所以我不能wipe整个网络服务器并执行SVN update因为服务器文件太大且内容自定义文件。

我现在要做的是服务器A上的commit和服务器B的最新提交文件scp,因此该文件将处于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.

1 个答案:

答案 0 :(得分:0)

通过将我的用户添加到apache组解决,以便我的用户可以覆盖apache文件