Can I override svn:ignore for individual directories?

2.2k Views Asked by At

The default global ignore for Subversion does a good job of keeping build artifacts out of version control. What if I need to distribute a directory of compiled code for my stuff to build?

I don't want to pick up my output (in, say, /target), and I want to continue ignoring all compiled code for most of my other projects, but just one directory (say, /input) needs to always track files with a .a extension.

Is there a property I can set on the /input directory that will make svn add pick up new .a files in there, without altering the global-ignores property?

2

There are 2 best solutions below

7
On BEST ANSWER

The svn:ignore setting is a per-directory property. It applies to a given directory, and adds to rather than overrides the global-ignores setting. See Ignoring Unversioned Items in the SVN book.

I would say you have two viable options:

  1. Don't include *.a in the global-ignores setting, but rather only set it in the svn:ignore property on directories where such files tend to appear, such as /target.
  2. Keep *.a in the global-ignores setting, and manually call svn add on each of the .a files you wish to track. Once they are tracked by SVN, the ignore setting will no longer apply to them.
0
On

Just encounter this issue and solved in SmartSVN Client (but the solution should be applicable to other SVN clients). You should be able to manually include an ignored file/directory without changing any svn:ignore settings.

The problem you might have is that the files may not be visible so you will have to show them first.

Solution:

  • Show ignored files
  • Right click the ignore file/directory and click "Add"