SVN-如何一次提交多个文件


104

我尝试一次将不同目录中的多个文件提交,如下所示,

svn commit –m”log msg” mydir/dir1/file1.c mydir/dir2/myfile1.h mydir/dir3/myfile3.c etc etc

从那以后,我想从提交列表中排除一些文件,因此我将每个文件名放在了上面的命令行中。我将其放在记事本中,总共有25个文件。当我将其复制并粘贴到命令行时,缺少最后几个文件,我猜想这可能是命令行缓冲区限制(?)。我可以增加缓冲区长度吗?

有什么选择可以将所有文件放在文本文件中并作为svn commit的参数吗?


8
@Thi-不使用GUI进行颠覆的人是受虐狂。获取Tortoise SVN或Linux等效版本。
tpow

1
如果对缓冲区长度有限制,则它将不在SVN中,而是在您使用的任何shell中。
Colin Fine,2010年

20
@cinquTimo:您可能更喜欢使用GUI进行所有操作。其他人没有。
Colin Fine,2010年

@Colin,我是这样认为的,在这种情况下如何增加外壳缓冲区的长度?
Thi

3
“那些不使用GUI进行颠覆的人是受虐狂。” -受虐狂是利用颠覆,但我们当中有些人别无选择。
丹尼尔(Daniel)

Answers:


157

您可以使用svn更改列表来跟踪要一起提交的一组文件。

链接的页面包含许多详细信息,但这是一个执行摘要示例:

$ svn changelist my-changelist mydir/dir1/file1.c mydir/dir2/myfile1.h
$ svn changelist my-changelist mydir/dir3/myfile3.c etc.
... (add all the files you want to commit together at your own rate)
$ svn commit -m"log msg" --changelist my-changelist

30

您可以使用--targets ARG选项,其中ARG是包含提交目标的文本文件的名称。

svn ci --targets myfiles.txt -m "another commit"

在以下bash命令中为我工作:find . -name \*my.mask | xargs svn ci -m"message" --targets -
ASten

28

我提交这样的几个文件没有问题:

svn commit fileDir1/ fileDir2/ -m "updated!"

这对我不起作用。收到错误“ svn:'/'不是工作副本”。我在这里发布了我的问题,你可以看看。 askubuntu.com/questions/442742/how-to-update-dir-on-svn-server/...

是的,效果很好。同样在我的文档根目录中,我可以使用以下命令来提交工作副本树结构中的所有更改:> svn commit。-m'大量提交消息'
Grigoreas P.

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.