Return-Path: X-Original-To: apmail-subversion-users-archive@minotaur.apache.org Delivered-To: apmail-subversion-users-archive@minotaur.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 971D710741 for ; Sun, 4 May 2014 02:25:50 +0000 (UTC) Received: (qmail 60742 invoked by uid 500); 4 May 2014 02:25:49 -0000 Delivered-To: apmail-subversion-users-archive@subversion.apache.org Received: (qmail 60687 invoked by uid 500); 4 May 2014 02:25:49 -0000 Mailing-List: contact users-help@subversion.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Delivered-To: mailing list users@subversion.apache.org Received: (qmail 60680 invoked by uid 99); 4 May 2014 02:25:49 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 04 May 2014 02:25:49 +0000 X-ASF-Spam-Status: No, hits=1.7 required=5.0 tests=FREEMAIL_ENVFROM_END_DIGIT,HTML_MESSAGE,RCVD_IN_DNSWL_LOW,SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (nike.apache.org: domain of danellis10@gmail.com designates 209.85.212.181 as permitted sender) Received: from [209.85.212.181] (HELO mail-wi0-f181.google.com) (209.85.212.181) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 04 May 2014 02:25:45 +0000 Received: by mail-wi0-f181.google.com with SMTP id n15so1279580wiw.2 for ; Sat, 03 May 2014 19:25:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=Lbzub2jFoUJmBz0M6xE7n5zL4mdbyqvKwFcL4vYaRe8=; b=A7vohSJDD5VRPag3jIlSstDLB29KscFz1fNm7tBCCAeaha3//JbEcfjPDy8tXiPgaM u4zcN0YdY1h5u/uXHVr1Vm07n42+soh5EeD/h4uGN94Jzl5UPzPZlUcqQOKelfEvgVpk 32RTzW9LxK3Wc75LUpn095CxlLRi9f1+ShZ0bMItKICzSiwliiOW9ThhnqVtXv3R8z1c tEzeyaWKNiFW6HLG1C5VgOdR060wMJGj4C6w/bbwx1WyAGFcrkC8h93yJP/CEpSXMESi Oj0Y6xCUCMHIx6YnprB8O0icdVCxefTiofGElYMVPYHxPev7VM36teKrYHxFw7KrhdRS a+JQ== MIME-Version: 1.0 X-Received: by 10.194.185.148 with SMTP id fc20mr21044929wjc.27.1399170323238; Sat, 03 May 2014 19:25:23 -0700 (PDT) Received: by 10.194.121.72 with HTTP; Sat, 3 May 2014 19:25:23 -0700 (PDT) In-Reply-To: <6EF743FD-9430-4989-A6D5-5AE8D98436C8@ryandesign.com> References: <6EF743FD-9430-4989-A6D5-5AE8D98436C8@ryandesign.com> Date: Sat, 3 May 2014 19:25:23 -0700 Message-ID: Subject: Re: svn list support for listing directory entries only From: Dan Ellis To: Ryan Schmidt Cc: Subversion Users Content-Type: multipart/alternative; boundary=047d7bdcab7c18d3a804f889ba3b X-Virus-Checked: Checked by ClamAV on apache.org --047d7bdcab7c18d3a804f889ba3b Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable On Sat, May 3, 2014 at 7:16 PM, Ryan Schmidt wrote: > > On May 3, 2014, at 20:13, Dan Ellis wrote: > > > The svn command line list command currently accepts --depth arguments o= f > files, infinity, and immediates (and empty, but that is really a no-op). > I'm in need of being able to list directory entries only in a repository= , > but I'm not sure there is any good way to accomplish that as-is. I've > search the lists and can only find articles about how folks have grep'ed > the output or hacked list.c to only return directory entries (which is > really just an inelegant grep anyways since the server still will be > sending the data). > > > > Is there a way, or consideration from the developers to add a feature, > to fetch only directory entries from a repo? Perhaps a --depth dirs > (opposite of --depth files) option. If there is no off the shelf way > and/or the developers are against (or don't see enough need) to implement > this, would there be any advise on how to accomplish this with a patch? = Is > there in inherent limitation to the server protocol that makes a request > like this simply unworkable? > > Directories are printed with a trailing slash, so if you just want > directories, you could grep for that: > > You already mentioned the grep solution in your message, so I=E2=80=99m g= uessing > that=E2=80=99s not satisfactory for some reason. If that=E2=80=99s true, = then maybe you > could explain in more detail what you need exactly, if it=E2=80=99s not t= he above. > > > Its really a performance concern. We need to do this fairly regularly on a large repository (over a WAN I might add) and asking the server for all files and directories when we really only need a directory listing is really a huge time sink (a 100:1 file to directory ratio would result in a listing time of 100 times slower). Grep and the like only format the output on the client side (which is easily parsable - we do use xml to parse) and don't relieve the performance burden. Thanks! Dan --047d7bdcab7c18d3a804f889ba3b Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
On S= at, May 3, 2014 at 7:16 PM, Ryan Schmidt <subversion-2014@rya= ndesign.com> wrote:

On May 3, 2014, at 20:13, Dan Ellis wrote:

> The svn command line list command currently accepts --depth arguments = of files, infinity, and immediates (and empty, but that is really a no-op).= =C2=A0I'm in need of being able to list directory entries only in a re= pository, but I'm not sure there is any good way to accomplish that as-= is. =C2=A0I've search the lists and can only find articles about how fo= lks have grep'ed the output or hacked list.c to only return directory e= ntries (which is really just an inelegant grep anyways since the server sti= ll will be sending the data).
>
> Is there a way, or consideration from the developers to add a feature,= to fetch only directory entries from a repo? =C2=A0Perhaps a --depth dirs = (opposite of --depth files) option. =C2=A0If there is no off the shelf way = and/or the developers are against (or don't see enough need) to impleme= nt this, would there be any advise on how to accomplish this with a patch? = =C2=A0Is there in inherent limitation to the server protocol that makes a r= equest like this simply unworkable?

Directories are printed with a trailing slash, so if you just want di= rectories, you could grep for that:

You already mentioned the grep solution in your message, so I=E2=80=99m gue= ssing that=E2=80=99s not satisfactory for some reason. If that=E2=80=99s tr= ue, then maybe you could explain in more detail what you need exactly, if i= t=E2=80=99s not the above.



Its really a perfor= mance concern. =C2=A0We need to do this fairly regularly on a large reposit= ory (over a WAN I might add) and asking the server for all files and direct= ories when we really only need a directory listing is really a huge time si= nk (a 100:1 file to directory ratio would result in a listing time of 100 t= imes slower). =C2=A0Grep and the like only format the output on the client = side (which is easily parsable - we do use xml to parse) and don't reli= eve the performance burden.

Thanks!
Dan<= /div>
--047d7bdcab7c18d3a804f889ba3b--