views:

300

answers:

3

I have an SVN repository with uncommitted changes to files. There is also a change in the svn:externals property on the root folder.

How do I commit the property changes, WITHOUT committing the changes to the files themselves?

A: 

I'm on TortoiseSVN so I'm not that familiar with svn's command line. The manual is silent on the issue, the only thing that's there is the --non-recursive option. So what would make sense is this:

Note: I don't know whether this works the required way. Be careful.

svn commit /path/to/repo --non-recursive 

it's possible that this commits files directly in the root directory as well - non-recursive can be interpreted both ways. Maybe you can find out.

If you can use TortoiseSVN, you just uncheck all unwanted items from the commit list.

Pekka
From what I can see, --non-recursive only applies to add operations.
Tom R
@rixth, not true: http://svnbook.red-bean.com/en/1.2/svn.ref.svn.c.commit.html
Pekka
Better to use a more recent version of that link: http://svnbook.red-bean.com/en/1.5/svn.ref.svn.c.commit.html or type `svn help commit`. The --non-recursive option has been obsoleted in favor of '--depth empty', as @TheJuice describes above.
Quinn Taylor
+1  A: 

If you only want to change the property you can do it against the repository right away, instead of against your working copy.

For example:

svn propset svn:externals "test http://yourhost.com/svn/trunk/module/test/src" --revprop -r HEAD http://yourhost.com/svn/trunk/module

See the SVN book on manipulating properties

DJ
Yes, but that doesn't explain what to do when you forget to add the commit message, and you have a property change hanging out in the middle of a large number of file changes.
Tim Keating
+3  A: 

In order to commit only the explicit paths specified on the command line use the --depth empty option e.g. in the directory with the newly modified externals property:

$svn commit --depth empty . -m "Modify svn externals definition only."
TheJuice