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

Re: State of vc-svn.el

From: Eric S. Raymond <esr_at_thyrsus.com>
Date: 2005-02-22 20:17:03 CET

Addressing the second point first...

Stefan Monnier <monnier@iro.umontreal.ca>:
> > (a) The three small changes to the Blandy version since r5801 should
> > be ported to the Monnier version.
>
> They don't seem to be applicable.

I rather thought that might be the case, but I had not eyeballed them
closely enough to be sure. If you are, then that means the Blandy
version can be dropped now.

> > 3. Both have a serious problem in that they only do commits one file
> > at a time. To fix this, the VC framework itself needs to have a
> > notion of committing a group of files.
>
> It's not just commits, but also merge-news, update, diff, ... everything.
> The VC-dired part tries to provide multiple-file operations but in my
> experience it just doesn't work acceptably.

Yeah, I know. It actually worked better when I wrote the original
mode in 1992 -- for example you could say C-x v u in a VC-dired buffer
and confirm just once to have all the marked files reverted in one go.
But sometime during one of the many re-factorings of the code that got
lost. I remember flaming the then-maintainer about that sometime
around 1997-1998 a few years after FSF took ove the code, but it never
got fixed.

> There needs to be serious
> re-design here and it's non trivial if we want it to work for Subversion,
> CVS, Arch, ... until now people have just provided other interfaces instead
> (psvn.el, pcl-cvs, xtla, ...). That makes the job even more difficult since
> we now have to compete against custom-taylored code.

I don't actually think this will be very hard. The key idea here is this:

1. We write a new function called something like vc-get-target-group. It
returns a list of filenames -- all the currently marked ones if in a VC-dired
buffer, a singleton list of the current buffer filename otherwise.

2. All the VC framework methods call (vc-get-target-group) and hand
the resulting list down to whatever backend methods they call. This
is a change from current practice which is to hand down a single file.

4. Each backend method has to know what to do with a list of files. For
file-oriented systems like RCS or SCCS, that's just to iterate through
the list applying the backend operation. For tree-oriented systems like
Subversion and arch, something more interesting happens.

-- 
		Eric S. Raymond
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Tue Feb 22 20:20:59 2005

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