How do I 'svn add' all unversioned files to SVN?
I'm looking for a good way to automatically 'svn add' all unversioned files in a working copy to my SVN repository.
I have a live server that can create a few files that should be under source control. I would like to have a short script that I can run to automatically add these, instead of going through and adding them one at a time.
My server is running Windows Server 2003 so a Unix solution won't work.
svn add --force * --auto-props --parents --depth infinity -q
Great tip! One remark: my Eclipse adds new files to the ignore list automatically. It may be a matter of configuration, but anyhow: there is the --no-ignore
option that helps.
After this, you can commit:
svn commit -m 'Adding a file'
This is a different question to mine but there is an answer there that belongs on this question:
svn status | grep '?' | sed 's/^.* /svn add /' | bash
What works is this:
c:\work\repo1>svn add . --force
Adds the contents of subdirectories.
Does not add ignored files.
Lists what files were added.
The dot in the command indicates the current directory, this can replaced by a specific directory name or path if you want to add a different directory than the current one.
This worked for me:
svn add `svn status . | grep "^?" | awk '{print $2}'`
(Source)
As you already solved your problem for Windows, this is a UNIX solution (following Sam). I added here as I think it is still useful for those who reach this question asking for the same thing (as the title does not include the keyword "WINDOWS").
Note (Feb, 2015): As commented by "bdrx", the above command could be further simplified in this way:
svn add `svn status . | awk '/^[?]/{print $2}'`
svn add --force .
This will add any unversioned file in the current directory and all versioned child directories.