gpt4 book ai didi

svn - 获取 svn : E170000: Unrecognized URL scheme for my custom Svn Gradle plugin

转载 作者:行者123 更新时间:2023-12-03 06:23:35 27 4
gpt4 key购买 nike

我使用 groovy 编写了一个自定义 gradle 插件来执行基本的 svn 任务,例如 Checkout、Clean、Tag 等。groovy 类调用 svn 命令行客户端来执行这些操作,当我在我的 Windows 系统上运行它时它工作正常但同样当我在 linux 系统 (Centos) 上运行插件时,它会出现以下错误。

svn: E170000: Unrecognized URL scheme for '%22https://source.mycompany.net/svn/MyProject/trunk%22'



我能够通过命令提示符或 shell 脚本对命令行客户端进行相同的调用,而不会出现任何问题。那么和有什么区别

这是我的代码示例:
    String command =String.format("svn co -r %d  --non-interactive --trust-server-cert --          username %s --password %s --depth infinity \"%s\" \"%s\"",
getRevision(),
getUserName(),
getUserPassword(),
getSrcUrl(),
getDir());

Process svnProcess = Runtime.getRuntime().exec(command);

BufferedReader stdInput = new BufferedReader(new InputStreamReader(svnProcess.getInputStream()));
BufferedReader stdError = new BufferedReader(new InputStreamReader(svnProcess.getErrorStream()));
String statusOutputLine =""
while ((statusOutputLine = stdInput.readLine()) != null)
{
logger.quiet(" " + statusOutputLine);
}

while (( statusOutputLine = stdError.readLine()) != null)
{
logger.error(statusOutputLine)
throw new Exception(statusOutputLine)
}
logger.quiet("Successfully Checked out the work space")

我确实在系统上安装了 NEON

-bash-4.1$ svn --version
svn,版本 1.6.11 (r934486)
编译 2011 年 6 月 25 日,11:30:15

版权所有 (C) 2000-2009 CollabNet。
Subversion 是开源软件,见 http://subversion.tigris.org/
本产品包括由 CollabNet ( http://www.Collab.Net/) 开发的软件。

以下存储库访问 (RA) 模块可用:
  • ra_neon :使用 Neon 通过 WebDAV 协议(protocol)访问存储库的模块。
  • 处理“http”方案
  • 处理“https”方案
  • ra_svn :用于使用 svn 网络协议(protocol)访问存储库的模块。
  • 使用 Cyrus SASL 身份验证
  • 处理“svn”方案
  • ra_local :用于访问本地磁盘上的存储库的模块。
  • 处理"file"方案
  • 最佳答案

    错误消息似乎很清楚,您传递的 URL 在单引号内。请注意它的前导和尾随 %22 . %22怎么样"在 URL 中编码。

    问题是您假设您的命令将通过 shell 运行。它不会。所以你的引号变成了传递给命令的文字。相反,任何空格都会被拆分为单独的参数,而不考虑引号。

    如果您想控制参数的拆分,您应该生成一个列表而不是单个字符串。

    该文档很重要(特别是选项 1 下的 Gotchas 部分):
    http://groovy.codehaus.org/Executing+External+Processes+From+Groovy

    关于svn - 获取 svn : E170000: Unrecognized URL scheme for my custom Svn Gradle plugin,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19732179/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com