SVN:svn import的状态

时间:2013-09-19 11:09:52

标签: svn cmd


在我的PHP脚本中,我在本地创建文件夹和文件,我想放入我的SVN。我使用包含svn import PATH/TO/MY/FOLDERS/AND/FILES的.cmd文件,该文件没有问题。 在svn导入成功后,我想删除我刚刚使用相同的.cmd脚本在本地放入SVN的文件夹。所以我不得不说(伪代码)
if(svn import PATH/TO/FOLDERS == successful){delete PATH/TO/FOLDERS locally}
这样的事情甚至可能吗?我不太了解.cmd脚本,所以请原谅我的问题,如果它是愚蠢的。

1 个答案:

答案 0 :(得分:0)

SVN导入如果成功则返回0,出错时返回非零。符合POSIX标准的shell将能够解释这一点,以便您可以编写类似svn import PATH/TO/FOLDERS && rm -rf /PATH/TO/FOLDERS的内容。

PHP的system()函数接受第二个参数 - 一个返回值,它将在调用system()时设置:

$svncmd = 'svn import PATH/TO/FOLDERS'
system( $svncmd, $retval);
if( $retval != 0 ) {
    $rmcmd = 'rm -rf PATH/TO/FOLDERS'
    system( $rmcmd, $retval);
    if( $retval != 0 ) {
         echo '"' . $rmcmd . '" failed and returned '"' . $retval . '"';
    }
} else {
    echo '"' . $svncmd . '" failed and returned '"' . $retval . '"';
}

我认为我倾向于在函数中包含对system()的调用以及以下错误消息,以使代码更简洁。

Perl有一个名为$!的特殊值,其中包含system()或其亲属返回的任何错误消息的文本。我确信PHP有类似的东西,但我5秒钟的谷歌搜索没有找到任何东西。这很值得一看;它会使您的错误消息更具可读性。

值得注意的是,使用system()会使您的代码本身不可移植。可能更好地使用PHP's SVN functions