[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Re: Recursive setting of versioned properties using URL using propedit or svnmucc

From: Ryan Schmidt <subversion-2010b_at_ryandesign.com>
Date: Wed, 21 Apr 2010 13:06:48 -0500

On Apr 21, 2010, at 09:27, Bettual Richter wrote:
> On Apr 21, 2010, at 07:19, Lorenz wrote:
>> Bettual Richter wrote:
>>> I'd like to set a property for every file in a certain
>>> directory(recursivly) using an url. Something like
>>>
>>> svn propedit -R PROPNAME PROPVAL URL
>>>
>>
>> I think you meant propset
>>
>> but anyhow svn prop* for versioned properties only work in on a
>> working copy.
>>
>
> Sry, but that's not right.
>
> svn propedit NAME VAL URL
>
> works without a working copy. I meant propedit and have
> tested it extensively because it allows you to set
> new properties(also versioned ones) see,
> http://subversion.tigris.org/issues/show_bug.cgi?id=2238
> comment from Noritada Kobayashi Thu Feb 1 03:55:02 -0700 2007
> It's the only hint I found to figure this out

True, svn propedit can be used on URLs now.

But "svn propedit NAME VAL URL" is not right. propedit does not take a VAL argument on the command line; rather, it opens an editor and you type the value there.

Also, svn propedit is for editing a single property of a single file or directory. Since you want to edit properties of multiple files, svn propedit is not going to work.

> Anyway thx for your idea but it doesn't really work the way I need it.
>
> I tested it using the svnmucc --extra-arg FILE with following results :
>
> 1. FILE containing one operation per line
> e.g. 'propset NAME VAL URL'
> gives 'propset NAME VAL URL' is not an action
> 2. FILE containing each arg in a seperate line
> e.g. 'propset \n NAME \n VAL \n URL'
> gives a correct reply and sets the right property

Yes, according to "svnmucc --help", its --extra-args option requires one argument per line in the file.

> 3. FILE containing serveral versions of 2.
> e.g. 'propset \n NAME \n VAL \n URL
> \npropset \n NAME \n VAL \n URL'
> gives the same error as 1.

Are you sure? I was able to get svnmucc to do two operations by just listing them one after another in the extra args file:

cp
1
file:///tmp/repo/foo
file:///tmp/repo/foo2
cp
1
file:///tmp/repo/foo
file:///tmp/repo/foo3

Though I am using the cp command here, and not propset; the propset command is not working for me for some reason; I'm getting the same error you reported earlier:

svnmucc: File already exists: filesystem '/tmp/repo/db', transaction '2-3', path '/foo'

> Assuming propedit works on URLs(it does) I'm trying to do something like
>
> svn propedit NAME1 VAL1 URL1
> svn propedit NAME2 VAL2 URL2
> svn propedit NAME3 VAL3 URL3
> at once.
> Most suitable with only one revision change.

propedit does work on URLs, but only on one URL at a time. Doing multiple actions in a single revision change without having a working copy is only possible using the svnmucc tool; that's the purpose of the svnmucc tool in fact.

The other option already mentioned is to do your changes in a working copy. Those are the two options I'm aware of for accomplishing what you want.

Well, the third option would be to write a program to do this using the Subversion language bindings. But that's a lot of work, and probably unnecessary since the other two methods suggested above should work and are easier.
Received on 2010-04-21 20:07:26 CEST

This is an archived mail posted to the Subversion Users mailing list.

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.