You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@subversion.apache.org by Michael Armida <ma...@amonkey.com> on 2004/02/14 03:35:29 UTC

Using properties for grouping file subsets

I'm new to subversion, and am looking for an effective way to group 
together particular revisions of files in a project (specifically, to 
associate file x1, x2, ... , xn  in revision Y with ID numbers from our 
bug tracker).  Previously, our use of CVS led to the less-than-desirable 
inclusion of such info in the commit log messages - while it wasn't hard 
to get the data in, retrieving the set of files that matched this 
required grepping the CVS repository.  Reading the subversion docs on 
properties made me think it could be a viable alternative, ala BFS 
attributes - create a single property for this info and search through 
it to get the lists of files.  Again, getting the information in is easy 
enough, but how can I get a list of files out via proplist?

So:

1) Is there a way to get a list of files out of proplist that only 
matches a certain property (i.e. not each property per file).

2) Are properties indexed to files internally, or might this get very 
slow for larger projects?

3) If one of the above two considerations kill this idea, are there any 
alternatives for grouping subsets of the project's files?  (tags, for 
instance?)

TIA,
Michael

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org

Re: Using properties for grouping file subsets

Posted by Benjamin Pflugmann <be...@pflugmann.de>.
Hi.

On Fri 2004-02-13 at 19:35:29 -0800, you wrote
> I'm new to subversion, and am looking for an effective way to group 
> together particular revisions of files in a project (specifically, to 
> associate file x1, x2, ... , xn  in revision Y with ID numbers from our 
> bug tracker).  Previously, our use of CVS led to the less-than-desirable 
> inclusion of such info in the commit log messages - while it wasn't hard 
> to get the data in, retrieving the set of files that matched this 
> required grepping the CVS repository.  Reading the subversion docs on 
> properties made me think it could be a viable alternative, ala BFS 
> attributes - create a single property for this info and search through 
> it to get the lists of files.  Again, getting the information in is easy 
> enough, but how can I get a list of files out via proplist?

Most people solve this use-case the other way around: Use an own
check-in (and therefore revision) for each tracked bug. If you do it
this way, you can query a list of file modified in that revision like
this (done inside a WC of subversion itself):

  > svn log -v -q -r5001
  ------------------------------------------------------------------------
  r5001 | rooneg | 2003-02-21 03:58:29 +0100 (Fri, 21 Feb 2003)
  Changed paths:
     A /trunk/subversion/include/svn_cancel.h
     M /trunk/subversion/include/svn_client.h
     M /trunk/subversion/include/svn_delta.h
     M /trunk/subversion/include/svn_error_codes.h
     M /trunk/subversion/include/svn_wc.h
     M /trunk/subversion/libsvn_client/client.h
     M /trunk/subversion/libsvn_client/diff.c
     M /trunk/subversion/libsvn_client/repos_diff.c
     A /trunk/subversion/libsvn_delta/cancel.c
     M /trunk/subversion/libsvn_delta/libsvn_delta.dsp
     M /trunk/subversion/libsvn_wc/diff.c
  ------------------------------------------------------------------------

In other words, the problem of CVS, that it is hard to find which
files where changed with a check-in doesn't really exist in
Subversion.

Whatever, back to your original questions...

> So:
> 
> 1) Is there a way to get a list of files out of proplist that only 
> matches a certain property (i.e. not each property per file).

Since proplist lists properties on a node (dir/file), I think it's not
easy to solve the problem without a full scan:

  svn proplist -R . | awk -F"'" '/^Properties/ {p=$2; next;} /svn:executable/ {print p}'

This lists all file in the current WC having svn:executable set. Maybe
there is a better way, but that was the first which came to my mind.

> 2) Are properties indexed to files internally, or might this get very 
> slow for larger projects?

AFAIK, no index. It scans all .svn/entries files, I think. Anyhow, it
was "fast enough" in my tries.

> 3) If one of the above two considerations kill this idea, are there any 
> alternatives for grouping subsets of the project's files?  (tags, for 
> instance?)

See above. If you don't have strong reasons to do otherwise, simply
group your check-ins by the bug IDs, i.e. if you fix two bug reports,
check them in separately.

HTH,

        Benjamin.



---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org