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

Re: "svn list -v" column alignment issue

From: Daniel Shahaf <d.s_at_daniel.shahaf.name>
Date: Mon, 23 Dec 2019 06:35:08 +0000

Vincent Lefevre wrote on Mon, 23 Dec 2019 02:21 +00:00:
> On 2019-12-21 08:09:46 +0000, Daniel Shahaf wrote:
> > Vincent Lefevre wrote on Sat, Dec 21, 2019 at 00:09:09 +0100:
> > > There's something wrong with "svn list -v" column alignment when
> > > there are author names with more than 8 characters. For instance,
> > > with the gcc repository:
> > >
> > > [...]
> > > 279442 jozefl Dec 16 12:02 libgcc/
> > > 278886 jvdelisle Dec 01 23:29 libgfortran/
> > > [...]
> >
> > As implemented, the width is initially 8 but as soon as a longer name is seen,
> > subsequent lines will be aligned with that, up to a maximum length of 16.
> >
> > Do you have a better algorithm to propose?
>
> cache the maximum length name in the working-copy data.

Let's see. We could cache the value in wc.db. Running 'ls' or 'blame' [the
same considerations apply to both] would update the cache; running 'cleanup'
would purge it.

Two things are not immediately clear to me:

- This info is only needed by the cmdline client, not by other library users.
  This suggests the API should be generic. A per-client cache, maybe? There's
  already a svn_client_ctx_t::client_name so it's not unprecedented.

- What the cache keys should be. wc.db is designed to be shared among multiple
  WC's, so presumably the cache should be per-wcroot or possibly per-repository?

>

Another idea: The WC caches the "last changed author" information. When
initializing the display width, we could initialize it as though we'd already
encountered a line with the longest "last changed author" that's cached in wc.db
(possibly for a <handwave>relevant</handwave> subtree).

>

(To be clear, I'm just brainstorming; I'm not going to implement either of
these ideas. Patches welcome.)

> Make the minimum width configurable,

Currently it is only configurable by changing the constant's value and
rebuilding…

Oh. I missed it before, but passing -H increases the minimum width to 14.
That's not obvious from the --help output and variable names.
Received on 2019-12-23 07:35:42 CET

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

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