【发布时间】:2016-12-19 15:46:02
【问题描述】:
我正在考虑使用 sbt 发布插件提出一个发布过程,但是当我尝试将 SVN 作为发布步骤提交时出现错误。
svn:提交失败(详情如下): svn: '/tmp/checkout/svn-test/commit' 不受版本控制
"/tmp/checkout/svn-test/" 是我项目的正确路径。我怀疑我在定义 ReleaseStep 以提交到 SVN 时做错了什么:
我的 build.sbt 发布配置如下:
lazy val execScript = taskKey[Unit]("Commit to Subversion")
execScript := {
"svn commit -m 'test commit from release plugin'" !
}
val commitToSVN = () => ReleaseStep(
action = releaseStepTask(execScript)
)
releaseProcess := Seq[ReleaseStep](
ReleaseTransformations.checkSnapshotDependencies,
ReleaseTransformations.inquireVersions,
ReleaseTransformations.setReleaseVersion,
commitToSVN()
)
任何帮助将不胜感激。谢谢
【问题讨论】:
-
你确定你的项目在
/tmp吗?如果是这样,我会把它移出那里,it is often cleaned out on every boot. -
它现在就在那里,我在那里进行了新的检查,然后在 SBT 中运行了发布目标。我也尝试在不同的目录中,但我仍然收到“[project-path]/commit is not under version control”错误
-
我强烈怀疑问题出在
!中使用了shell 语法(即使用单引号)。如果您改为使用Seq("svn", "commit", "-m", ...),它会起作用吗?正如你所拥有的,我认为它认为'test和commit和from和release和plugin'都是独立的参数。 -
@SethTisue 就是这样。刚刚用一个单词提交消息对其进行了测试,它运行良好。谢谢,你是救命稻草