[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: <kfogel_at_collab.net>
Date: 2005-02-22 18:42:43 CET

"Eric S. Raymond" <esr@snark.thyrsus.com> writes:
> Some months ago one of the listmembers here who was aware that I am
> the original author of Emacs VC mode asked me to review the vc-svn.el
> written by Jim Blandy that ships with Subversion.
>
> I have not forgotten this request, and it just worked its way far
> enough up my queue to get some action. I have looked at both the
> Blandy version and the version by Stefan Monnier that now ships with
> Emacs.

Thank you thank you thank you for tackling this. I've also been
wanting this mess to be cleaned up for a long time, but, unlike you,
hadn't gotten around to actually doing anything about it :-).
 
> Here are my findings:
>
> 1. The Monnier version was synced with the Blandy version at revision
> 5801, and has evolved since.
>
> 2. The Blandy version changed at revs r9195, r6632, and r6173. The
> last substantive change was at r5799.
>
> 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.
>
> My conclusion is that:
>
> (a) The three small changes to the Blandy version since r5801 should
> be ported to the Monnier version.
>
> (b) VC should learn to use a new optional method, vc-group-commit, that commits
> a group of files with a single change comment. And to fall back
> on individual-file checkins when that optional method is absent.
>
> (c) The Monnier vc-svn.el should be enhanced to supply this method.
>
> (d) The Blandy version should be dropped.

Totally agree with your conclusions. And (d) can happen anytime after
(a), there's no need for it to wait on (b) and (c).

> In furtherance of (c), there is a hint in the way Emacs calls svn ci
> that when svn ci is given path arguments, it commits only changes in
> the files named by those arguments (as opposed to shipping changes
> for the entire working copy).
>
> However, neither the help text for svn ci nor the Subversion book
> addresses this. (The failure to explain how path arguments are used
> is a documentation bug.) Is it in fact the case?

Yes, that's right. In other words:

  $ svn ci -m "log msg"

commits all the changes in your working copy, but

  $ svn ci -m "log msg" path1 another/path some/other/path

commits just the named paths, and does not commit whatever other local
modifications might be lurking in your working copy.

If the book doesn't explain this, it should.

> If so, enhancing VC to do the right thing will be easy.

That's great news.

Let us know when to drop vc-svn.el from our repository and start
pointing to the one in the Emacs tree as the canonical version.

How all this relates to pcl-cvs.el / psvn.el, I don't know. If VC
grows decent support for checkin groups, then it will overlap the
PCL-CVS / PSVN functionality (the former is in the FSF Emacs tree, and
the latter in the Subversion tree, IIRC). I don't think this overlap
is necessarily a bad thing, it's just something to stay aware of.

-Karl

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

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.