Add all unversioned files to Subversion using one Linux command
Solution 1:
svn add --force <directory>
Add is already recursive. You just have to force it to traverse versioned subdirectories.
Solution 2:
Adds any file with a question mark next to it, while still excluding ignored files:
svn status | grep -v "^.[ \t]*\..*" | grep "^?" | awk '{print $2}' | xargs svn add
svn commit
http://codesnippets.joyent.com/posts/show/45
Solution 3:
This will attempt to add all files - but only actually add the ones that are not already in SVN:
svn add --force ./*
Solution 4:
This command will add any un-versioned files listed in svn st
command output to subversion.
Note that any filenames containing whitespace in the svn stat output will not be added. Further, odd behavior might occur if any filenames contain '?'s.
svn st | grep ? | tr -s ' ' | cut -d ' ' -f 2 | xargs svn add
or if you are good at awk:
svn st | grep ? | awk '{print $2}' | xargs svn add
Explanation:
Step 1: svn st
command
[user@xxx rails]$svn st
? app/controllers/application.rb
M app/views/layouts/application.html.erb
? config/database.yml
Step 2: We grep the un-versioned file with grep
command:
[user@xxx rails]$svn st | grep ?
? app/controllers/application.rb
? config/database.yml
Step 3: Then remove the squeeze the space between ?
and file path by using tr command:
[user@xxx rails]$svn st | grep ? | tr -s ' '
? app/controllers/application.rb
? config/database.yml
</pre>
Step 4: Then select second column from the output by using cut command:
[user@xxx rails]$svn st | grep ? | tr -s ' ' | cut -d ' ' -f 2
app/controllers/application.rb
config/database.yml
Step 5: Finally, passing these file paths as standard input to svn add
command:
[user@xxx rails]$svn st | grep ? | tr -s ' ' | cut -d ' ' -f 2 | xargs svn add
A app/controllers/application.rb
A config/database.yml