2010-12-02 38 views
97

我试图提交在如下单杆在不同的目录多个文件多个文件,SVN-如何提交单杆

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

因为,我想排除在名单提交一些文件,以便我已经将每个文件名放在命令行中,如上所示。我把它放在记事本中,共有大约25个文件。当我复制并粘贴到命令行时,最后几个文件丢失了,我想这可能是一个命令行缓冲区限制(?)。有没有我可以增加缓冲区长度的选项?

有没有任何选择我可以把所有文件放在一个文本文件中,并将其作为svn提交参数?

+6

@Thi - 那些谁不使用GUI颠覆是受虐狂。获得Tortoise SVN或它的Linux等效。 – tpow 2010-12-02 13:56:18

+1

如果缓冲区长度有限制,它将不在SVN中,它将位于您正在使用的任何shell中。 – 2010-12-02 13:56:30

+20

@cinquTimo:您可能更喜欢使用GUI来处理所有事情。其他人不。 – 2010-12-02 14:00:12

回答

146

您可以使用一个svn changelist来跟踪您想一起提交的一组文件。

所链接的页面进入大量的细节,但这里的执行摘要例如:

$ 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 
3

使用变更集。 您可以随意添加尽可能多的文件到变更​​集,一次或多个命令;然后一次性提交。

28

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

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

我已经没有问题,犯了几个文件是这样的:

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