Search code examples
svnunixcommitacksvncommit

Commit modified files only using subversion


I have a long list of commits to make and, as such, would like to stagger the commits. So, when I do:

svn st | ack '^M'

I would like to commit these files only

Is this possible through the command line?


Solution

  • The xargs command is useful for this kind of thing.

    Assuming you don't have any filenames containing space characters, you can do:

    svn st | sed -n 's/^M//p' | xargs svn commit
    

    If you do have space characters in filenames, the sed command becomes a little more complex, to add quotes around each filename:

    svn st | sed -n 's/$/"/; s/^M */"/p' | xargs svn commit
    

    (I'm not familiar with ack -- perhaps it could be also be used in place of sed in these examples)