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

Re: svn ignore command feature request.

From: Doug Culnane <dougculnane_at_gmail.com>
Date: Thu, 27 Jan 2011 13:26:55 +0100

Thanks for your response Stefan,

I am not a C programmer and do not have in dept knowledge of
subversion and it's client implementations but I have done a lot of
Java. So this is to be understood as a user feature request and not
much else.

I do not understand this:
svn ignore --depth=infinity target
I set the svn:ignore property on the parent directory and so this tend
to set --depth=infinity or recurse ignore as I understand it.

I do not want the properties get and set interfaces to change or the
data structures. I do not want to bring in new commands that need
maintainable, support, documentation, testing ......... however the
idea here is to make it convenient to access existing code. 90% of
the propget and propset command I do are to append files to the
svn:ignore list of files on parent directory. These are complex.

This is what I want to have:
dc_at_lt-dc:~/workspace/project> svn st
? target
? bin
dc_at_lt-dc:~/workspace/project> svn ignore target
I target
dc_at_lt-dc:~/workspace/project> svn st
I target
? bin
dc_at_lt-dc:~/workspace/project> svn propget svn:ignore .
target

So the technical spec is if the command is ignore append the file or
folder to its containing parent folders svn:ignore list.

Maybe this would also require a unignore command and an external and
unexternal command etc... I can understand that is is not desired by
the guys that will have to maintain the code, but these features could
maybe be made easier to use so guys like me do not need to do a google
search to remind us HowTo.

I do not know what the detailed technical consequences of this are but
I just think the existing ignore functionality could be made much
easier to use. I am very happy to lose to a faction of developers
strongly arguing against new subcommands if they can explain why:

"svn add target" and "svn rm target" are easy to use.
"svn propset svn:ignore -F ignoreList.txt ." is not.

I suspect the ignore and externals are stored in properties for good
reason (or a consequence of long historical reasoning) and there is no
way this should change with this feature request.

Thanks again,

Doug

On Thu, Jan 27, 2011 at 12:35 PM, Stefan Sperling <stsp_at_elego.de> wrote:
> On Thu, Jan 27, 2011 at 12:01:19PM +0100, Doug Culnane wrote:
>> Guys,
>>
>> I understand how to use the svn:ignore but it is not the most
>> convenient or logical user interface.  Would it be possible to provide
>> an ignore command line option that would provide a convenient
>> interface to add files/folders to the ignore properties list?
>>
>> ie:
>> dc_at_lt-dc:~/workspace/project> svn st
>> ?      .classpath
>> ?      .project
>> ?      target
>> ?      my.file
>> dc_at_lt-dc:~/workspace/project> svn ignore target
>> I           target
>> dc_at_lt-dc:~/workspace/project> svn add my.file
>> A         my.file
>> dc_at_lt-dc:~/workspace/project> svn st
>> ?      .classpath
>> ?      .project
>> I       target
>> A      my.file
>> dc_at_lt-dc:~/workspace/project> svn ci -m "add stuff and ignore other stuff..."
>> ...
>>
>> This ignore command could set svn:ignore properties this is just a
>> convent easy to use interface to the svn:ignore functionality.
>
> I like the idea.
>
> Would you be able to write a detailed behavioural specification
> for this new feature? Is its effect just like propset or is it
> more like propedit?
>
> E.g. I think it should behave more like propedit. There should also
> be an --depth option (e.g. svn ignore --depth=infinity target),
> the equivalent of adding target to svn:ignore properties within the
> specified depth of a subtree.
> This isn't convenient with propset since that overwrites existing
> data in svn:ignore properties. And svn propedit isn't recursive.
> That's where I see the real value here.
>
> And what about removing items from the ignore list?
> svn unignore or svn ignore --remove?
>
> Maybe we could even add more subcommands to edit other multi-line properties
> more conveniently. E.g. svn:externals comes to mind, though that doesn't
> need to be recursive:
>
>  $ svn external ^/branches/foo/bar dir
>  $ svn external ^/branches/foo/baz dir
>  $ svn pg svn:externals dir
>    ^/branches/foo/bar
>    ^/branches/foo/baz
>  $ svn external --remove ^/branches/foo/bar dir
>  $ svn pg svn:externals dir
>    ^/branches/foo/bar
>
> However, there's usually a faction of developers strongly arguing
> against new subcommands. I'm not one of them, but we may have to
> do some arguing to get this idea accepted :)
>
> Would you, given the community at large accepts the idea, be willing
> to write patches for this new feature?
> You could model the new subcommand on existing ones.
> If you want to take a quick look at the code, all the svn subcommands
> are in this directory:
> https://svn.apache.org/repos/asf/subversion/trunk/subversion/svn
>
> Thanks,
> Stefan
>
Received on 2011-01-27 13:27:42 CET

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