SVN仅读取提交消息的第一个字?

SVN仅读取提交消息的第一个字?,svn,commit,fedora,Svn,Commit,Fedora,通常,当我将内容提交到存储库时,我会这样做 svn ci file1 file2 file3等-m“这是一条关于我正在提交的更改的消息。” 我目前正在另一台计算机上工作(它恰好运行Fedora而不是我通常的Ubuntu),当我这样做时,它会犹豫,说 svn: Commit failed (details follow): svn: '/home/[path]/[word]' is not under version control 其中[word]是我提交消息的第二个单词。 (例如,在上述示例

通常,当我将内容提交到存储库时,我会这样做 svn ci file1 file2 file3等-m“这是一条关于我正在提交的更改的消息。”

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

svn: Commit failed (details follow):
svn: '/home/[path]/[word]' is not under version control
其中[word]是我提交消息的第二个单词。 (例如,在上述示例中(“这是一条消息…”),“是”)

我不认为SVN在Fedora中的工作方式不同吗?

导致此问题的原因是什么?我需要做什么才能在此处使用-m标志?

在标准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建议使用“type svn”,它揭示了所讨论的函数。

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

最后,作为一种解决方法,我在脚本中创建了一个带有注释字符串的临时文件,然后使用
--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]}"
...

嗯,试着用单引号而不是双引号?命令
svn
实际上是一个写得不好的shell脚本,可能会导致这种情况。
less`哪个svn`
说什么?TheZ:对不起,我确实使用了双引号,但这两种变体都会产生这种行为@PascalCuoq:/usr/bin/svnI怀疑
less`哪个svn`
说“/usr/bin/svn”。@PascalCuoq,而svn就是这么说的。这是一个二进制文件,所以我认为您不需要lessing的结果;)试过了,但行为没有改变。试过了,但行为没有改变。