【问题标题】:Unable to tag -- SVN, maven, Cygwin, spaces in the SVN repo path无法标记 -- SVN、maven、Cygwin、SVN 存储库路径中的空格
【发布时间】:2014-04-08 13:48:49
【问题描述】:

我在 Windows 7 上从 cygwin 提示符(由 maven 脚本驱动)运行 subversion 命令时遇到问题。我尝试运行的命令是从 maven 版本调用的:准备目标:

[INFO] Executing: cmd.exe /X /C "svn --non-interactive copy --file 
C:\cygwin64\tmp\maven-scm-1610151144.commit --revision 0 
"https://mysvn.server/svn_projects/Path Space/More Whitespace/src/tags/dest-0.1" 
"https://mysvn.server/svn_projects/Path Space/More Whitespace/src/tags/dest-0.1""

(我插入了几个换行符以使命令更具可读性)。

subversion 命令标记失败,出现以下错误:

[ERROR] Failed to execute goal 
org.apache.maven.plugins:maven-release-plugin:2.0:prepare (default-cli) 
on project dest: Unable to tag SCM

我尝试在 maven pom.xml 中的 SCM 路径中使用“\”而不是简单的“”来转义空格。结果相同。没有在 SVN 没有空格的情况下重新创建新路径,有没有办法解决这个问题?

谢谢。

【问题讨论】:

    标签: maven svn cygwin spaces


    【解决方案1】:

    网址不能包含空格。您需要做的是将空间编码%20:

    代替:

    https://mysvn.server/svn_projects/Path Space/More Whitespace/src/tags/dest-0.1
    

    https://mysvn.server/svn_projects/Path%20Space/More%20Whitespace/src/tags/dest-0.1
    

    【讨论】:

    • 在 maven pom.xml 中?
    • 是的。 URI 不应该包含某些字符。这些字符是 URI 中的 percent-encoded。如果 URI 在 pom.xml 中,那么 POM 中的 URI 也应该被编码。
    • 我采取了简单的做法并从 SVN 的路径中删除了空间。我收集标记可能失败的原因是因为在 SVN 中没有标记兄弟目录到中继。呵呵。
    • 在文件和目录名称中禁止空格在开发中始终是一个好主意。我对Maven如何做SCM了解不够。我不喜欢让构建系统直接与版本控制系统交互。在 SVN 中,您可以使用svn cp --parent 创建父目录。例如,您有$REPO/tags,但没有$REPO/tags/4.3。你可以这样做svn cp $REPO/trunk/proj $REPO/tags/4.3/proj,Subversion 会在其下创建4.3 标签目录和proj 目录。
    猜你喜欢
    • 2013-06-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-24
    • 2011-08-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多