SVN- How to commit multiple files in a single shot
I tried to commit multiple files across different directories in a single shot as below,
svn commit –m”log msg” mydir/dir1/file1.c mydir/dir2/myfile1.h mydir/dir3/myfile3.c etc etc
Since, I wanted to exclude some files from the commit list so I’ve placed each file name in the command line as above. I put it together in the notepad and it开发者_JAVA技巧 came about 25 files. When I copy and paste it on the command line, the last few files are missing and I guess this might be a command line buffer limitation (?). Is there any option I can increase the buffer length?
Is there any option I can put all files in a text file and give it as an argument to svn commit?
You can use an svn changelist to keep track of a set of files that you want to commit together.
The linked page goes into lots of details, but here's an executive summary example:
$ 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
You can use --targets ARG
option where ARG is the name of textfile containing the targets for commit.
svn ci --targets myfiles.txt -m "another commit"
I've had no issues committing a few files like this:
svn commit fileDir1/ fileDir2/ -m "updated!"
Use a changeset. You can add as many files as you like to the changeset, all at once, or over several commands; and then commit them all in one go.
Same as the answer by Dmitry Yudakov, but without an intermediate file, using process substitution:
svn commit --targets <(echo "MyFile1.txt\nMyFile2.txt\n")
精彩评论