darcs

Patch 111 Contribute vc-darcs.el for Emacs VC support.

Title Contribute vc-darcs.el for Emacs VC support.
Superseder Nosy List dagit, darcs-users, fx, jch, twb
Related Issues
Status rejected Assigned To
Milestone

Created on 2009-12-10.13:44:13 by fx, last changed 2011-05-10.21:36:49 by darcswatch. Tracked on DarcsWatch.

Files
File name Status Uploaded Type Edit Remove
contribute-vc_darcs_el-for-emacs-vc-support_.dpatch fx, 2009-12-10.13:44:10 text/x-darcs-patch
unnamed fx, 2009-12-10.13:44:11 text/plain
See mailing list archives for discussion on individual patches.
Messages
msg9584 (view) Author: fx Date: 2009-12-10.13:44:11
Wed Dec  9 23:22:06 GMT 2009  Dave Love <fx@gnu.org>
  * Contribute vc-darcs.el for Emacs VC support.
  
  The Emacs maintainers rejected the Darcs support (despite supporting
  the other major free VCSs) :-(.  Distributing it with Darcs makes it
  reasonable to drop support for old Darcs versions later and possibly
  take advantage of additional features to support it, but means we have
  to track incompatible changes in Emacs.
  
  Please take care only to include changes covered by an appropriate FSF
  assignment/disclaimer, though, in case it ever can get into Emacs.
Attachments
msg9586 (view) Author: dagit Date: 2009-12-10.17:36:10
The discussion as to why I marked it as rejected is here:
http://lists.osuosl.org/pipermail/darcs-users/2009-December/022519.html

The summary:  We want this, but the repo at http://darcs.net is not the right place.
msg9641 (view) Author: fx Date: 2009-12-16.22:01:35
Just in case anyone uses the version I sent, it had a bug in the recent
change to vc-darcs-registered.  There's a fixed version at
http://www.loveshack.ukfsn.org/Emacs/vc-darcs.el
msg9654 (view) Author: jch Date: 2009-12-21.10:04:22
> As you note in your source comments, there is a competing implementation
> by Juliusz.  Why are there two versions?  Is it solely because Juliusz
> (presumably) won't assign copy rights to the FSF?

I sent the papers to the FSF.  I never received a reply.

The process was rather unpleasant (I couldn't just sign a document
saying "I assign all alienable rights to vc-darcs.el to the FSF", as
I can do with e.g. Springer, I had to fill in a form with all sorts of
silly questions).

Shall I go through that again?

[Reordered Trent's questions]

> Does Juliusz' vc-darcs.el includes features that yours doesn't?
> Does your (Dave's) vc-darcs.el include features that Juliusz' doesn't?

First, we use different implementation techniques.  My version parses
Darcs' XML output, and so remains reliable with funky patch names.
Dave's version, on the other hand, appears to do complex regex-munging
over Darcs' human-readable output.

At a quick glance, the functionality differences are the following, in
roughly decreasing order of importance:

 - unless I don't understand Dave's code, my version has a better
 - grokking of Darcs revision numbers;
 - my version uses the Emacs 23 support for Git-style revision-control
   systems, which makes it work better with Darcs; however, this means
   that it doesn't work on older Emacsen;
 - Dave's version has an implementation of a log-browsing mode for
   Darcs, which mine doesn't (it just uses Emacs' generic log-browsing
   mode, which doesn't work very well); the proper solution is of course
   to fix Emacs' generic mode to work with Darcs;
 - my version has much nicer vc-annotate.

> If so, and we can't use Juliusz' work (due to copyright), are you
> prepared to reimplement those features in a novel way (i.e. without
> copying)?

Gosh, no -- as far as I'm concerned, the whole point of Free Software is
that we're free to copy each other's ideas (with proper attribution).
If there's interest, I can try to go through the FSF's bureaucracy again.

                                        Juliusz
msg9721 (view) Author: fx Date: 2010-01-03.23:54:34
I don't know what this is in response to.  I haven't seen the material
quoted in the article.

Juliusz Chroboczek <bugs@darcs.net> writes:

> Juliusz Chroboczek <jch@pps.jussieu.fr> added the comment:
>
>> As you note in your source comments, there is a competing implementation
>> by Juliusz.  Why are there two versions?  Is it solely because Juliusz
>> (presumably) won't assign copy rights to the FSF?
> 
> I sent the papers to the FSF.  I never received a reply.

They're not noted in the list of papers on file.

That mode is based on someone else's work and, as I understood it, no
assignment would be forthcoming for that.  (All significant
contributions need to be covered by legal papers, and I don't know who
else had contributed -- possibly not Juliusz at that time.)

>> Does Juliusz' vc-darcs.el includes features that yours doesn't?
>> Does your (Dave's) vc-darcs.el include features that Juliusz' doesn't?
>
> First, we use different implementation techniques.  My version parses
> Darcs' XML output, and so remains reliable with funky patch names.

I'm not convinced that there's any advantage to the XML stuff,
especially as its structure isn't defined (as far as I can tell) and it
isn't even necessarily valid XML.  [That's a conclusion I've also
reached elsewhere.]  What is the precise technical advantage?  darcs
should be capable of printing a human-readable hash of a change, but I
haven't got round to contributing that, and I'm not sure now how helpful
it would be.

> Dave's version, on the other hand, appears to do complex regex-munging
> over Darcs' human-readable output.

Where it needs patch names it typically uses what I normally do by hand
with `--patch' to select, but you can also use `--match' selection.  VC
still fundamentally doesn't deal well with patch-based VCSs as far as I
can tell, but I don't claim to understand properly how the Emacs 23
stuff is supposed to work.

> At a quick glance, the functionality differences are the following, in
> roughly decreasing order of importance:
>
>  - unless I don't understand Dave's code, my version has a better
>  - grokking of Darcs revision numbers;

How so, especially since darcs doesn't actually have the revision
numbers Emacs assumes (which is part of the problem, along with darcs'
flexibility)?

>  - my version uses the Emacs 23 support for Git-style revision-control
>    systems, which makes it work better with Darcs; however, this means
>    that it doesn't work on older Emacsen;

I've tracked Emacs and darcs versions, though it's a good deal easier to
keep up with darcs than with the backwards-incompatibilities/bugs in
Emacs, unfortunately.  Modulo bugs and a few possible omissions noted,
mine supports the VC in Emacs 21-23 and darcs versions ~1 upwards.
However, I haven't tested older darcsen recently, and I don't know what
versions are significant in the wild; old ones may not be such a problem
since, fr instance, it's not in RedHat and SuSE 10.

>  - Dave's version has an implementation of a log-browsing mode for
>    Darcs, which mine doesn't (it just uses Emacs' generic log-browsing
>    mode, which doesn't work very well); the proper solution is of course
>    to fix Emacs' generic mode to work with Darcs;

I can't remember what the state of the latest log-view mode is, but I
don't think it should have backend-specific features.  It should have
hooks for the backend, but that was rejected when I tried to get the VC
support generalized on the basis of experience with darcs and I could no
longer install changes.

>  - my version has much nicer vc-annotate.

How so?  It provides less information as far as I can tell.

>> If so, and we can't use Juliusz' work (due to copyright), are you
>> prepared to reimplement those features in a novel way (i.e. without
>> copying)?
>
> Gosh, no -- as far as I'm concerned, the whole point of Free Software is
> that we're free to copy each other's ideas (with proper attribution).

Ideas aren't the issue -- copyright (detailed expression) is.  Anyone's
free to use my code under the terms of the licence, but as a maintainer
I wasn't free to use work in Emacs that wasn't either trivial or covered
by an assignment/disclaimer.  I've often re-implemented stuff for that
reason, and it's typically easier than chasing legal papers, though I'd
rather not, and I want to avoid possible future need for that.

> If there's interest, I can try to go through the FSF's bureaucracy again.

Has someone said it would be included, if so, why mine was rejected?
However, from experience I'm not convinced it's maintained in Emacs,
since the maintenance typically won't be done for the Emacs versions
people are actually using or by someone who uses darcs.
msg12043 (view) Author: twb Date: 2010-08-08.03:39:26
Juliusz Chroboczek wrote:
> I sent the papers to the FSF.  I never received a reply.
>
> The process was rather unpleasant (I couldn't just sign a document
> saying "I assign all alienable rights to vc-darcs.el to the FSF", as
> I can do with e.g. Springer, I had to fill in a form with all sorts
> of silly questions).

I asked a colleague at FSF to check into this.  The reply has been at
the bottom of my IN tray for the last six months, so maybe I forgot to
forward it on to this thread.  Sorry about that.

Donald at copyright@fsf.org says:

| Looking through the records it looks like he received several
| replies, but then his assignment form went missing in the
| mail. Jonas closed the ticket out a long time ago after he didn't
| respond to a follow up.  I just need to know if his address is still
| current and I can send him a new form.
History
Date User Action Args
2009-12-10 13:44:13fxcreate
2009-12-10 13:45:35darcswatchsetdarcswatchurl: http://darcswatch.nomeata.de/repo_http:__darcs.net_.html#bundle-99aee5b54c95894677618fb41684540444298e64
2009-12-10 17:36:13dagitsetstatus: needs-review -> rejected
nosy: + dagit
messages: + msg9586
2009-12-16 22:01:38fxsetmessages: + msg9641
2009-12-21 10:04:43jchsetnosy: + twb, jch
messages: + msg9654
2010-01-03 23:54:38fxsetmessages: + msg9721
2010-08-08 03:39:26twbsetmessages: + msg12043
2011-05-10 21:36:49darcswatchsetdarcswatchurl: http://darcswatch.nomeata.de/repo_http:__darcs.net_.html#bundle-99aee5b54c95894677618fb41684540444298e64 -> http://darcswatch.nomeata.de/repo_http:__darcs.net_reviewed.html#bundle-99aee5b54c95894677618fb41684540444298e64