0

我正在尝试使用 subversion 和 post-commit 脚本部署 PHP 应用程序。我一直在寻找如何编写提交后脚本,但我无法让它工作。

配置:我的服务器(OVH)上安装了一个 svn 文件夹homeX.XX/svn/test/

我的提交后脚本应该导出到 homeX.XX/dev/

使用时不知道怎么写正确的路径

#!/bin/bash
mkdir dev
chmod 777 dev
svn export svn+ssh://XXXXX@www.xxxx.com/homeX.XX/XXX/svn/test dev

在我的 POST-COMMIT 脚本中。我一直在寻找答案,但没有找到任何答案...

4

1 回答 1

1

从 SVN 文档(这里):

Subversion 存储库使用空环境执行钩子程序——也就是说,根本没有设置任何环境变量,甚至没有设置 $PATH。

我已经被这个问题刺痛了几次。基本上,编写 SVN 提交钩子的最简单方法,虽然不是很干净,但是将您需要的所有文件和目录硬编码为绝对路径。

因此,在这种情况下,您的脚本将类似于:

#!/bin/bash

# SVN-related variables
svnuser=XXXXX
svnhost=www.xxxx.com
svnpath=/homeX.XX/XXX/svn/test

# Local paths
exportpath=/homeX.XX/dev

# Make export dir if it does not exist
if [ ! -e "$exportpath" ]
then
    mkdir $exportpath
fi

# These permissions are very lenient! Are you sure you want this?
chmod 777 $exportpath

# Do the SVN export
export svn+ssh://$svnuser@$svnhost$svnpath $exportpath
于 2011-03-01T12:07:27.610 回答