Golang中调用SVN查询日志失败问题排查
SVN命令在Go exec调用中路径参数错误的解决方法
问题原因
你遇到的错误是因为调用runSVNCommand时,没有正确拆分SVN的命令参数。exec包不会像shell那样自动分割空格分隔的内容,如果你把目标文件路径和--stop-on-copy、-l 1这类参数合并成一个字符串传给args,SVN会把整个字符串当成文件路径,自然找不到对应文件。
正确的调用方式
把每个SVN参数都拆成独立的字符串传入runSVNCommand,示例代码如下:
output, err := runSVNCommand( "XXXX", "XXXXX", true, "", "log", "-r", "1:HEAD", "https://svnRepo.com/svn/SampleCode/AppCode/branches/Release_69.00/Batch1/Backend/arc/appEvents.jaa", "--stop-on-copy", "-l", "1", )
验证方法
查看代码里fmt.Println("SVN Command being executed: ", cmd.String())的输出,如果路径部分被引号包裹且包含--stop-on-copy,就说明参数拆分错误。正确的输出里,--stop-on-copy应该是独立的参数,不会和路径混在一起。
内容的提问来源于stack exchange,提问作者Saby
相关产品推荐
相关产品推荐

