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

时间:2012-08-15 20:15:39

标签: svn commit fedora

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

我目前正在开发一台不同的计算机(碰巧运行的是Fedora而不是我常用的Ubuntu),当我这样做时,它就会说话,说

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

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

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

4 个答案:

答案 0 :(得分:3)

我遇到了同样的问题。如果我尝试直接在终端上提交,那么-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]}"
...

答案 1 :(得分:0)

在标准的Unix命令中,参数应该 BEFORE 文件名:

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

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

尝试在文件名前添加-m参数。确保在提交消息周围使用引号。

答案 2 :(得分:0)

-m的评论应该先行......

$ svn ci -m "changes" file1 file2 file3 

答案 3 :(得分:0)

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

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

感谢@David_W建议使用“type svn”,它显示了有问题的功能。