Ignore Files and Directories in Subversion

misc

If you work with version control systems like subversion (svn) I'm sure you can relate to the problem of having test files show up when you try to commit changes. It is actually pretty simple to tell subversion ignore directories or specific files.

You can do this by editing the svn property called svn:ignore as follows:

svn propedit svn:ignore ./some_path

When you run that command svn will open your text editor, and this is where you can define patterns or specific files to ignore. If you place a * in the property file, it will ignore all files in the directory you specified ./some_path

*

The svn:ignore property as far as I know only supports the * as a wildcard. It doesn't support regular expressions, or anything fancy like that.

Having the wildcard is quite handy though, because you can do things like this:

*.class
test_*

Which will ignore all your files that end in .class or any file that starts with test_.

In web application development I find it handy to ignore the contents of the directory where I store uploaded images, or files.

What do you ignore?



Related Entries

28 people found this page useful, what do you think?

Trackbacks

Trackback Address: 662/14C254675AEE287A52BE1D38A8624D46

Comments

On 12/14/2007 at 2:43:12 PM EST Rey Bango wrote:
1
Pete, I know that there are some easy install versions of Subversion out there. Can you point me in the right direction?

On 12/14/2007 at 4:04:43 PM EST Pete Freitag wrote:
2
Yeah Collab has one for windows that is easy to setup: http://downloads.open.collab.net/collabnet-subversion.html it bundles apache 2...

A good client for windows is: tortoisesvn.net

I haven't found a good client for mac, but I usually just use the command line client.

On 12/14/2007 at 4:12:41 PM EST Steve Goodman wrote:
3
Of course, you could simply not add test files to the repository in the first place, then your future commits won't reflect those files. But your technique is little bit handier for when you have to add big directory trees. This will be useful for filtering out the FTP syncing files that dreamweaver creates in each directory.

On 12/14/2007 at 4:21:41 PM EST Pete Freitag wrote:
4
Right, I should have been more clear, if you have added the test files you will need to remove them from the repo first.

This makes it so your svn client doesn't report the files with a question mark when you run svn status, and should prevent you from adding these your test files to the repository by accident.

It is also handy for the .project files Eclipse creates.

On 12/14/2007 at 7:28:20 PM EST Rob Wilkerson wrote:
5
I ignore:

.project .DS_Store _test (a directory I typically have in each project to use as kind of a quickie scratch pad) bin (another directory I often use to store files that will be uploaded to the system)

I also ignore build.xml and build.properties. I don't commit those because the "live" files typically contain server authentication credentials. Instead, I commit build.xml.sample and build.properties.sample without any authentication information. Sure, I have to double my work if I make any structural changes, but it a small price to pay to avoid publishing my sudo-level user information to other members of my team. :-)

Like you, I haven't found a good Mac client. I tried like hell to like SCPlugin, but just couldn't get it to do my bidding (kept getting authorization failures with no prompt to try again). I ended up sticking with Subclipse.

On 03/23/2008 at 9:32:16 AM EDT Antti Mattila wrote:
6
Argh, I fell into copy/paste trap when trying to add stuff to svn:ignore ("svn propedit snv:ignore ./some_path"). So unless you ment it to be a trap, please fix :) (snv -> svn)

On 05/14/2008 at 8:52:51 AM EDT Pete Freitag wrote:
7
@Antti Thanks, I fixed that typo.

On 07/21/2008 at 6:27:19 AM EDT Gonna wrote:
8
This will be useful for filtering out the FTP syncing files that dream weaver creates in each directory. http://www.webtelefonkonyv.hu

On 08/04/2008 at 12:33:25 PM EDT Gamesby wrote:
9
Thanks for the advice in this post :-) I'm doing some .net development and VS likes to create LOTS of DLLs and PDBs. It also likes to make deployment all the more tricky be requiring that the web.config file sits in the root folder. I've followed your advice and everything now works fine on my development machine - DLLs, PDBs and web.config successfully ignored.

One question: How can these ignore patterns filter through to every other working copy of this repo? On my svn client (collabnet), changes to svn-prop.tmp are local - so each developer has to apply the settings individually (which seem to provide all the ingredients for a "Perfect Storm"). It would be great if this could run server-side. Any thoughts on how to do this?

On 08/04/2008 at 12:40:21 PM EDT Gamesby wrote:
10
Those looking for a Mac client might want to check out svnX - http://www.versiontracker.com/dyn/moreinfo/macosx/24158. You might have to install subversion first though. If svnX grumbles, try "sudo port subversion" in terminal.

I found it to be OK for a GUI svn client, but not as nice as tortoiseSvn for windows :-)

On 08/04/2008 at 1:21:37 PM EDT Gamesby wrote:
11
Found the answer to the question in my first post "How can these ignore patterns filter through to every other working copy of this repo?" Here goes:

1. Create 2 files in the root of your working copy called ignore.txt and ignore.bat. 2. Copy all the ignore patterns for your as separate lines to ignore text i.e.

*.dll bin/*.dll

3. Copy the following to ignore.bat:

svn propset svn:ignore trunk -F ignore.txt

This assumes that all the files you want to ignore are in /trunk or below. If not, replace "trunk" with where ever you want your target to be.

4. Commit changes and run ignore.bat

5. Get all your developers to update their working copies and run ignore.bat (so everyone's on the same page).

Any thoughts?

On 08/04/2008 at 1:35:28 PM EDT Rob Wilkerson wrote:
12
@Gamesby -

I keep it pretty simple, stupid. I keep a copy of my config file in Subversion and check it out to my working directory. My team is responsible for keeping their local copy updated (updates happen rarely, to say the least).

The server doesn't know to explicitly ignore the files (benefit: no list of svn:ignore properties in Trac's source code browser), but clients properly understand that the repository doesn't care about them.

On 10/29/2008 at 10:06:34 AM EDT Dan wrote:
13
Isn't Versions supposed to be a kick-ass SVN client for Mac?

http://www.versionsapp.com/

I haven't used it (Windows guy here, don't shoot me) but it looks great. Tortoise is perfect for me on Win, but if I was on a Mac, I'd check out Versions.

On 12/18/2008 at 12:02:03 AM EST kind wrote:
14
the message above is spam

On 02/19/2009 at 8:38:59 AM EST fredflint wrote:
15
@Gamesby -

I like your approach, and have used it in other projects:

svn propset svn:ignore . -F ignore.txt

This time however, after I have set the propset and commited, when I run svn status I get this message:

M .

That is, it says my target folder is modified. Committing . does not work =)

What did I do wrong this time? Any suggestions?

On 04/07/2009 at 11:01:42 AM EDT Dick Davies wrote:
16
Rather than ignoring your whole build.xml, it's better to factor out the credentials into e.g. auth.properties and then ignore that. You can still keep a auth.properties.example versioned to clarify the format expected.

On 06/17/2009 at 4:53:05 AM EDT Max Williams wrote:
17
Hi Pete, thanks for this post, i just googled to it. It's worth pointing out (i discovered from painful experience), in shouty caps, this fact:

ONLY FILES WHICH ARE NOT IN THE REPOSITORY ALREADY CAN BE IGNORED! IF YOU WANT TO IGNORE SOMETHING THAT IS IN THE REPOSITORY THEN SVN DELETE IT FIRST!

On 06/17/2009 at 4:18:11 PM EDT starpause wrote:
18
Throwing my few cents in on the osx svn front end:

SmartSVN Foundation edition is the most full featured, free SVN client I've found for OSX yet.

There's a SmartSVN Professional edition with a few more bells and whistles but for any of the unsupported tasks you can always drop back down to the command line.

On 06/29/2009 at 1:58:29 PM EDT Dan Coates wrote:
19
Thanks so much to all, and especially Max William's comment about files already in the repository: he helped me avoid pulling the rest of my hair out!

On 08/10/2009 at 11:33:43 AM EDT Fitzgerald Steele wrote:
20
I've enjoyed and would recommend using Cornerstone of the mac

On 08/27/2009 at 5:00:23 PM EDT Justin wrote:
21
I'm ignoring Magento's var/* Thanks for the command!

On 10/28/2009 at 1:15:19 AM EDT john wrote:
22
you can't add a property to a folder that's not under version control so this doesn't work $ svn propedit svn:ignore folderName

to ignore a folder you do

$ svn propedit svn:ignore . add folder name in text editor window commit

On 06/10/2010 at 5:39:25 AM EDT Ferdinant wrote:
23
Thank you very much for this information. The default SVN documentation doesn't explain this so well like you do.

On 07/06/2010 at 4:25:58 AM EDT frog wrote:
24
Versions (www.versionsapp.com) is indeed a very good svn client for OS X, though quite pricey imo

Not sure why 'kind' (comment #14) is claiming its spam — it's a real client, it's excellent, and it's an answer to Pete Frietag's comment #2.

svnX is another GUI client for OS X that's free and very usable (ugly, but it works well enough for most things)

and of course some IDEs/editors have built-in svn support, like XCode and TextMate (and i think TextWrangler, a free alternative to TextMate, also has inbuilt svn support)

On 07/28/2010 at 9:08:45 AM EDT Mirko Steiner wrote:
25
I ignore the compiled tamplates (templates_c) directory from the smarty template engine ;-)

On 11/15/2010 at 12:30:27 PM EST Grant wrote:
26
@Rob Wilkerson

I like your approach. Are you creating a separate repository for your config and checking out to a working copy? Or something else?

On 11/15/2010 at 12:36:59 PM EST Rob Wilkerson wrote:
27
@Grant

Wow, this is a blast from the wayback machine. I've been using Git for the last couple of years, but as I recall, I had a separate config repository whose config/ directory I checked out to my .subversion directory.

On 09/19/2011 at 8:52:33 AM EDT Borislav Sabev wrote:
28
I use svn:ignore to ignore files in the app/tmp directory of any cake app.

On 11/08/2011 at 12:41:52 PM EST ustamansangat wrote:
29
I am going to try it but does it not support ** to include subdirrectories?

On 07/13/2012 at 12:57:42 AM EDT Chris Weekly wrote:
30
For Mac clients (for the poor souls stuck on SVN instead of the infinitely superior GIT), I find Cornerstone to be a much nicer OS X GUI SVN client than Subclipse (which you should only use if you already like Eclipse). But my recommendation is to use Sublime Text 2 as your code editor (it is rapidly converting tons of diehard users of Emacs, Vim, TextMate, BBedit, etc) and then use the SVN package. For me, it makes the pain of SVN tolerable while I wait for our imminent upgrade to git. Happy coding!

On 06/03/2014 at 8:42:07 AM EDT MBT Barabara Shoes wrote:
31
mbt shoes retail outlets Ignore Files and Directories in Subversion MBT Barabara Shoes http://www.kitemobile.co.uk/mbt/mbt-shoes-sale-germany.asp

Post a Comment




  



Spell Checker by Foundeo

Recent Entries



foundeo


did you hack my cf?