all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: "Eric S. Raymond" <esr@thyrsus.com>
To: Stefan Monnier <monnier@iro.umontreal.ca>
Cc: "Eric S. Raymond" <esr@snark.thyrsus.com>, emacs-devel@gnu.org
Subject: Re: Request for policy ruling - dropping Arch support fom VC?
Date: Sat, 6 Dec 2014 01:05:48 -0500	[thread overview]
Message-ID: <20141206060548.GB14890@thyrsus.com> (raw)
In-Reply-To: <jwvwq655qpy.fsf-monnier+emacs@gnu.org>

Stefan Monnier <monnier@iro.umontreal.ca>:
> It should be pretty easy to check if Emacs-24.4's vc-arch.el works right.

Not as easy as you might think.  Ubuntu doesn't package Arch, which is
a pretty good clue that nobody has cared about it for quite a while.
The last source snapshot was made nine years ago. I downloaded it and looked;
the build insteructions are rudimentary and not reassuring.

Here's the entire diff since I started reworking VC.  There are no
logic changes, only only one change touches the register method, and
that just removes an unused argument.

diff --git a/lisp/vc/vc-arch.el b/lisp/vc/vc-arch.el
index 53b8e35..d1344f2 100644
--- a/lisp/vc/vc-arch.el
+++ b/lisp/vc/vc-arch.el
@@ -231,8 +231,7 @@ Only the value `maybe' can be trusted :-(."
   "Return the administrative directory of FILE."
   (expand-file-name "{arch}" (vc-arch-root file)))
 
-(defun vc-arch-register (files &optional rev _comment)
-  (if rev (error "Explicit initial revision not supported for Arch"))
+(defun vc-arch-register (files &optional _comment)
   (dolist (file files)
     (let ((tagmet (vc-arch-tagging-method file)))
       (if (and (memq tagmet '(tagline implicit)) comment-start)
@@ -262,10 +261,6 @@ Only the value `maybe' can be trusted :-(."
 	       ;; Strip the terminating newline.
 	       (buffer-substring (point-min) (1- (point-max)))))))))
 
-(defun vc-arch-workfile-unchanged-p (_file)
-  "Stub: arch workfiles are always considered to be in a changed state,"
-  nil)
-
 (defun vc-arch-state (file)
   ;; There's no checkout operation and merging is not done from VC
   ;; so the only operation that's state dependent that VC supports is commit
@@ -315,10 +310,11 @@ Only the value `maybe' can be trusted :-(."
 		    'up-to-date
 		  'edited)))))))))
 
-;; -dir-status called from vc-dir, which loads vc, which loads vc-dispatcher.
+;; dir-status-files called from vc-dir, which loads vc,
+;; which loads vc-dispatcher.
 (declare-function vc-exec-after "vc-dispatcher" (code))
 
-(defun vc-arch-dir-status (dir callback)
+(defun vc-arch-dir-status-files (dir _files callback)
   "Run 'tla inventory' for DIR and pass results to CALLBACK.
 CALLBACK expects (ENTRIES &optional MORE-TO-COME); see
 `vc-dir-refresh'."
@@ -452,7 +448,7 @@ CALLBACK expects (ENTRIES &optional MORE-TO-COME); see
     (vc-arch-command nil 0 files "commit" "-s" summary "-L" comment "--"
 		     (vc-switches 'Arch 'checkin))))
 
-(defun vc-arch-diff (files &optional oldvers newvers buffer)
+(defun vc-arch-diff (files &optional async oldvers newvers buffer)
   "Get a difference report using Arch between two versions of FILES."
   ;; FIXME: This implementation only works for singleton filesets.  To make
   ;; it work for more cases, we have to either call `file-diffs' manually on
@@ -469,7 +465,6 @@ CALLBACK expects (ENTRIES &optional MORE-TO-COME); see
     (if newvers
         (error "Diffing specific revisions not implemented")
       (let* (process-file-side-effects
-	     (async (not vc-disable-async-diff))
              ;; Run the command from the root dir.
              (default-directory (vc-arch-root file))
              (status
@@ -496,8 +491,6 @@ CALLBACK expects (ENTRIES &optional MORE-TO-COME); see
   "A wrapper around `vc-do-command' for use in vc-arch.el."
   (apply 'vc-do-command (or buffer "*vc*") okstatus vc-arch-program file flags))
 
-(defun vc-arch-init-revision () nil)
-
 ;;; Completion of versions and revisions.
 
 (defun vc-arch--version-completion-table (root string)

> I suggest to keep vc-arch.el on life-support with minimal efforts: only
> update the code "in the obvious way", just so that if someone were to
> come and complain that Arch doesn't work any more, it should be
> reasonably easy to fix it.

That's doable.  I think I've finished making incompatible API changes,
so we can put this code on ice knowing that fixing it (if we ever have
to) will be pretty trivial.

Let's do what you were considering and move the arch back end to the
obsolete directory, also taking Arch out of the supported-backends list.
That way the VC test code won't trip over it, but it will be handy if
someone shows up wanting Arch support.  
-- 
		<a href="http://www.catb.org/~esr/">Eric S. Raymond</a>



  reply	other threads:[~2014-12-06  6:05 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-12-05 23:12 Request for policy ruling - dropping Arch support fom VC? Eric S. Raymond
2014-12-06  2:07 ` Paul Eggert
2014-12-06  4:53 ` Stefan Monnier
2014-12-06  6:05   ` Eric S. Raymond [this message]
2014-12-06  9:16     ` Ulrich Mueller
2014-12-06 10:07       ` Eric S. Raymond
2014-12-06 13:40         ` Ulrich Mueller
2014-12-06 13:51           ` Eric S. Raymond
2014-12-06 22:50     ` Stefan Monnier

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20141206060548.GB14890@thyrsus.com \
    --to=esr@thyrsus.com \
    --cc=emacs-devel@gnu.org \
    --cc=esr@snark.thyrsus.com \
    --cc=monnier@iro.umontreal.ca \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.