簡體   English   中英

SVN:svn導入的狀態

[英]SVN: status of svn import


在我的PHP腳本中,我在本地創建要放入SVN的文件夾和文件。 我使用一個包含svn import PATH/TO/MY/FOLDERS/AND/FILES的.cmd svn import PATH/TO/MY/FOLDERS/AND/FILES ,該svn import PATH/TO/MY/FOLDERS/AND/FILES可以正常工作。 svn導入成功后,我想刪除剛才使用相同的.cmd腳本在本地放入SVN的文件夾。 所以我不得不說一些類似(偽代碼)的東西
if(svn import PATH/TO/FOLDERS == successful){delete PATH/TO/FOLDERS locally}
這樣的事情有可能嗎? 我對.cmd腳本了解不多,所以如果它很愚蠢,請原諒我的問題。

如果成功,SVN導入將返回0,錯誤返回非零。 符合POSIX的外殼將能夠解釋這一點,以便您可以編寫諸如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的SVN函數可能更好。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM