【问题标题】:SVN "is not under version control" failure with Jenkins詹金斯的 SVN“不受版本控制”失败
【发布时间】:2012-08-08 20:04:59
【问题描述】:

我在 Jenkins 有一个项目,其中有许多 SVN 存储库可供提取。每当我构建时,工作区清理后的第一次构建都会失败,并出现如下错误。无需更改任何内容,下一次构建将成功。

如果我将项目设置为始终在构建之前清理工作区,它总是会失败。每次使用不同的 SVN 存储库。

我尝试迁移到 SVN 1.6,尝试验证 HTTPS 证书是否正常,不知道还要寻找什么?

ERROR: Failed to parse svn info for     https://subversion.assembla.com/svn/<PROJECT NAME HIDDEN>/trunk
org.tmatesoft.svn.core.SVNException: svn:     '/tmp/data/hudson/jobs/Build_ISO/workspace/ch.ethz.ssh2' is not under version control
    at org.tmatesoft.svn.core.internal.wc.SVNErrorManager.error(SVNErrorManager.java:64)
    at org.tmatesoft.svn.core.internal.wc.SVNErrorManager.error(SVNErrorManager.java:51)
    at org.tmatesoft.svn.core.wc.SVNWCClient$13.handleError(SVNWCClient.java:3314)
    at org.tmatesoft.svn.core.internal.wc.admin.SVNWCAccess.walkEntries(SVNWCAccess.java:758)
    at org.tmatesoft.svn.core.internal.wc.admin.SVNWCAccess.walkEntries(SVNWCAccess.java:741)
at org.tmatesoft.svn.core.wc.SVNWCClient.crawlEntries(SVNWCClient.java:3294)
at org.tmatesoft.svn.core.wc.SVNWCClient.doInfo(SVNWCClient.java:2498)
at org.tmatesoft.svn.core.wc.SVNWCClient.doInfo(SVNWCClient.java:2865)
at hudson.scm.SubversionSCM$BuildRevisionMapTask.invoke(SubversionSCM.java:1023)
at hudson.scm.SubversionSCM$BuildRevisionMapTask.invoke(SubversionSCM.java:1001)
at hudson.FilePath.act(FilePath.java:832)
at hudson.FilePath.act(FilePath.java:814)
at hudson.scm.SubversionSCM.checkout(SubversionSCM.java:685)
at hudson.model.AbstractProject.checkout(AbstractProject.java:1212)
at hudson.model.AbstractBuild$AbstractRunner.checkout(AbstractBuild.java:579)
at hudson.model.AbstractBuild$AbstractRunner.run(AbstractBuild.java:468)
at hudson.model.Run.run(Run.java:1410)
at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:46)
at hudson.model.ResourceController.execute(ResourceController.java:88)
at hudson.model.Executor.run(Executor.java:238)
Caused by: org.tmatesoft.svn.core.SVNErrorMessage: svn: '/tmp/data/hudson/jobs/Build_ISO/workspace/ch.ethz.ssh2' is not under version control
at org.tmatesoft.svn.core.SVNErrorMessage.create(SVNErrorMessage.java:163)
at org.tmatesoft.svn.core.SVNErrorMessage.create(SVNErrorMessage.java:118)
... 17 more

【问题讨论】:

  • 你运行的是什么版本的 Jenkins?
  • 您找到解决方案了吗?这仅在设置“本地模块目录”时发生。

标签: svn hudson jenkins


【解决方案1】:

我知道该线程很旧并且几乎已过时,但这并没有阻止像我这样的人登陆这里寻找解决这个流行的詹金斯问题的方法。因此,既然现在我的问题已解决,我将发布答案以供将来使用:-

最初的搜索表明该问题是由于某些版本的 SVN 插件中的错误,因此显而易见的解决方案是更改该插件,@ChrisH 给出的链接中也指出了这一点。他的链接很有帮助。因此,您可以使用以下两种方式更新 svn 插件:-

  1. 去管理插件并从那里安装更新。
  2. this link 下载 *.hpi 文件并将 *.hpi 文件放在 $JENKINS_HOME/plugins/ 文件夹中。如果您不知道 $JENKINS_HOME 文件夹在哪里,那么它很可能是您主目录中的一个隐藏文件夹(对于 linux)。

更新插件后,您需要重新启动 jenkins,以便新插件生效。

但是,如果您最近下载了 jenkins,则可能不需要遵循上述过程。只需转到 Manage Jenkins-> Configure System 并从组合框中更改 SVN 版本(至 1.6)。

玩得开心,

【讨论】:

  • 最后一部分是我的问题;显然它默认为 1.5,更改为 1.6 修复了它
  • 很伤心,快到2018年了,Jenkins的SVN插件还是默认1.4。不要忘记删除 Jenkins 的 SVN 副本并重启 Jenkins!
  • 哇。你是英雄,@Amit。 (你也是,@JackMiller)。现在快 2019 年了,新下载和打补丁的 Jenkins 在 svn externals 上仍然完全失败,直到有人更改了上面的工作副本版本。 并且为来自同一仓库的外部添加“附加凭据”取消选中令人费解的“忽略外部”复选框。
【解决方案2】:

如果您的存储库中有任何 svn:externals 链接,您可能会遇到以下问题之一:

【讨论】:

  • 如何检查我是否使用 svn:externals?
  • @Yon: svn pg svn:externals -R 来自成功签出的工作副本的基本目录。
  • 空响应,所以我猜不使用它。
  • 错误消息将是 ERROR: Failed to parse svn info for external 在我们的例子中它没有说 external
  • @ChrisH 在使用您提到的命令后,我获得了如此多的外部链接。我如何解决这个问题?请帮助
【解决方案3】:

当我使用模块名称检出第一个存储库和使用“.”(无模块名称)检出第二个存储库时,我遇到了类似的问题。 第二次结帐覆盖了第一次。

对我有用的解决方案是:首先检查非模块名称存储库(只能是一个),然后检查非模块名称存储库。

【讨论】:

    【解决方案4】:

    如果我正确理解您的设置,您有多个 SVN URL,并且您希望将这些 URL 检出到您的 jenkins 项目工作区中的一组文件夹中。像我在这里的东西:

    如果你不定义本地模块目录,那么工作空间就是那个。而且我认为如果您的结帐包含重叠的目录,您可能会遇到问题。因此,请始终使用模块目录设置在一个项目中单独签出。然后你需要调整你的构建以适应它。

    【讨论】:

    • 是的,正在尝试检查多个 URL。我已经为它们定义了本地模块目录——它们彼此不同。
    • 那么也许你在工作区根目录中之前结帐时有一些垃圾。我现在没有其他想法。
    【解决方案5】:

    还有另一种可能性:您的 svn:externals 属性中的 URL 不一致。我刚刚在我当前的项目中发现了这一点:.(顶部)上的外部都引用了 testmachine-01,但目录 Server 上的外部引用testmachine-01.companydomain.com,这在我的开发机器上以一种方式解决,在构建服务器上以另一种方式解决。

    【讨论】:

      【解决方案6】:

      这个问题在 2020 年再次出现!尝试了上述所有解决方案,但没有任何帮助。 我不得不停止 Jenkins 服务并删除有问题的 svn 外部文件夹并重新启动。 这成功了。 原因是我已升级 Jenkins 以开始使用更新的数据格式。这导致许多工作失败 错误:无法解析外部 .... at .. 的 svn 信息 org.tmatesoft.svn.core.SVNException: svn: E200005: 'C:\Jenkins\jobs...' 不受版本控制

      【讨论】:

        猜你喜欢
        • 2018-11-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-03-10
        • 1970-01-01
        • 2014-07-18
        • 1970-01-01
        相关资源
        最近更新 更多