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

时间:2010-12-02 13:54:17

标签: svn file commit

我尝试在一次拍摄中跨不同目录提交多个文件,如下所示,

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

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

是否有任何选项可以将所有文件放在文本文件中并将其作为svn commit的参数提供?

5 个答案:

答案 0 :(得分:154)

您可以使用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

答案 1 :(得分:29)

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

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

答案 2 :(得分:27)

我提交了一些像这样的文件没有问题:

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

答案 3 :(得分:3)

使用变更集。 您可以根据需要为变更集添加任意数量的文件,一次添加或多个命令;然后一次性完成它们。

答案 4 :(得分:0)

answer by Dmitry Yudakov相同,但没有中间文件,使用process substitution

svn commit --targets <(echo "MyFile1.txt\nMyFile2.txt\n")