SVN 仅读取提交消息的第一个单词



通常当我将东西提交到我们的存储库时,我会这样做svn ci file1 file2 file3 etc -m "这是关于我正在提交的更改的消息。"

目前正在另一台计算机上工作(它恰好运行的是Fedora而不是我通常的Ubuntu),当我这样做时,它犹豫不决,说

svn: Commit failed (details follow):
svn: '/home/[path]/[word]' is not under version control

其中 [word] 是我的提交消息的第二个单词。(例如,在上面的例子中("这是一条消息..."),"is")。

我不认为SVN在Fedora中的工作方式不同吗?
可能导致此问题的原因是什么,我需要做什么才能在此处使用 -m 标志?

我遇到了同样的问题。如果我尝试直接在终端提交,那么-m工作正常。但是如果我尝试使用脚本提交,那么它只会从注释字符串中获取第一个单词。即使使用--non-interactive选项也无济于事。

最后,作为解决方法,在脚本中,我创建了一个包含注释字符串的临时文件--file然后使用选项为 commit 命令提供注释。

echo ${COMMENT[$i]} > .tempistan
if [ -n "${FILES_TO_COMMIT[$i]}" ]; then
    svn_cmd="/usr/bin/svn --non-interactive commit --file .tempistan ${FILES_TO_COMMIT[$i]}"
...

在标准的 Unix 命令中,参数应该放在文件名之前

$ svn ci -m "This is a message about the changes I'm committing." file1 file2 file3 etc.

两个系统之间的 Subversion 可能没有区别,而是使用的 shell。shell 分析命令,并将文件和参数发送到命令。这样,shell 就可以处理文件扩展。

尝试将 -m 参数放在文件名之前。确保在提交消息两边使用引号。

带有-m的评论应该排在第一位...

$ svn ci -m "changes" file1 file2 file3 

问题是 svn 是一个调用/usr/bin/svn 的函数,同时不允许提交者在签入时使用计算机的共享用户名,作为一种问责措施。

它仍然很烦人,但是可以使用/usr/bin/svn,并且在不使用 -m 标志后,提交者仍然可以在 nano 中键入消息。

感谢@David_W建议"svn型",它揭示了有问题的功能。

最新更新