我正在编写一个简单的Perl脚本,试图通过SVN自动检入文件。我没有在Perl中使用任何给定的SVN客户端,为了简单起见,我只是使用命令行参数。
每当我运行下面的svn checkout命令时,我都会收到此错误:
sh[2]: svn+ssh://my/repo/url/project/trunk: not found.
这是命令和变量声明。
$svn_root = "svn+ssh://my/repo/url/project/trunk";
$user = `whoami`;
`svn checkout -q --username $user $svn_root workingCopyName`;
我应该注意到我通过SSH连接到存储库并编辑了我的配置文件(并包含-q以防万一)。我还要注意,在脚本之外运行此命令可以完全正常,对于相同的URL,并且没有-q参数。
感谢您的帮助。如果我需要清除任何内容,请告诉我。
答案 0 :(得分:5)
请注意,错误来自shell,而不是svn
。
您正在执行
svn checkout -q --username user
svn+ssh://my/repo/url/project/trunk workingCopyName
当你想要执行时
svn checkout -q --username user svn+ssh://my/repo/url/project/trunk workingCopyName
因为$user
包含换行符。取代
my $user = `whoami`;
与
chomp( my $user = `whoami` );