Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Ignore a folder during SVN updates

Tags:

svn

svnignore

If I svn:ignore a really big folder will it improve performance during SVN updates?

I have this really massive (>600MB) folder in my project. The files in this folder should not be changing at all. The problem is that every time I call "svn update" it takes forever. Is there a way to ignore this folder during updates to speed up the update process?

like image 254
Christian Schlensker Avatar asked May 12 '11 21:05

Christian Schlensker


People also ask

How do I ignore a folder in svn?

Set the svn:ignore property of the parent directory: svn propset svn:ignore dirname . If you have multiple things to ignore, separate by newlines in the property value.

How do I ignore target folder in svn?

To ignore files in subversion you want to set the svn:ignore property. You can see more here http://svnbook.red-bean.com/en/1.8/svn.advanced.props.special.ignore.html about half way down. svn propset svn:ignore target . svn propedit svn:ignore .

How do I set property to ignore in svn?

Use the following command to create a list not under version control files. Then edit the file to leave just the files you want actually to ignore. Then use this one to ignore the files listed in the file: svn propset svn:ignore -F ignoring.

Does svn update overwrite local changes?

Subversion is pretty smart about updating and never just overwrites files that have local changes with copies from the repository. The most important thing to take away from this section is: If you collaborate with others on one repository, remember to update your working copy regularly.


4 Answers

The svn:ignore is only for files that are not already in the Subversion repository. This folder already is.

You can use the svn update --set-depth exclude folderName to remove this folder from your working directory:

$ svn update --set-depth exclude bigFolder  #Removes "bigFolder" from workdir
D bigFolder

$

Next time you do an update, bigFolder won't show up in your working directory. If you want it back, you'll have to reset the depth:

$ svn update --set-depth infinity
U bigFolder
U bigFolder/File1
U bigFolder/File2
...
like image 60
David W. Avatar answered Oct 06 '22 18:10

David W.


You could do an svn update and specifically mention every other directory, e.g.

svn update dir1 dir2 dir3

Or, grep -v out what you don't want.

svn update `ls | grep -v big_dir`

Or, svn mv the big_dir up into another folder and change your build system to get the content from the other directory.

like image 28
Bill Brasky Avatar answered Oct 06 '22 18:10

Bill Brasky


Just do :

svn up `svn ls | grep -v big_dir`

Using "svn ls" You could update not only locally existing directories and files, but new files from repository. So, update is more complete, than just exclude. And You don't need to delete already existing files, like "--set-depth exclude" apparently does.

like image 21
Fedir RYKHTIK Avatar answered Oct 06 '22 19:10

Fedir RYKHTIK


Apart from what @Bill Brasky said, one suggestion is to move the huge folder into an external. That way you can do svn up --ignore-externals

If you don't want the huge folder in your working copy, you can have a look at sparse checkouts:

svn checkout repo . --depth empty
svn up other dirs
like image 3
manojlds Avatar answered Oct 06 '22 18:10

manojlds