2013-01-21 59 views
0

我试图创建一个脚本,将执行根上的svn更新,但我不明白我得到的结果。下面是我的脚本执行的代码:Svn更新脚本跳过svn

$update = "svn --username user --password pwd update svn://URL"; 
$res = exec($update); 
echo $res; 

然而,$res的回声给我“跳过‘:// URL SVN’”。

我用一个类似的方法来做一个svn结帐,它工作正常。有什么我错过了能够做更新吗?

回答

2

确保您位于工作副本内。如果脚本运行在非SVN目录中,则会出现此错误:

Skipped '/non/workingcopy/path' 
+0

好吧我不确定我是否理解正确。目前,我的脚本在我的服务器的根目录下执行,就像我执行svn checkout脚本一样。 – oliboon

+0

@OlivierParenteau在你的脚本中,在你尝试运行svn更新之前,只需运行这个命令来确认脚本在哪里,你认为它是从'echo __DIR __;'执行的;然后在命令行上,取出该目录并尝试这个'svn info '看看你是否得到了工作副本的详细信息。 – Ray

+0

我试过了,我确实得到了工作副本的详细信息。我以为我可能一直在使用svn的错误URL,但使用这些信息中显示的路径,url或存储库根目录不起作用。 – oliboon

1

可能您的脚本运行在工作副本之外。无论如何...如果你正在* NIX环境下开发,你也可以尝试这种方法:

$result = shell_exec("/usr/bin/svn update /path/to/project --username user --password pass"); 
+0

不幸的是,我不能使用这种方法。谢谢。 – oliboon