Ville Skyttä <ville.skytta(a)xemacs.org> writes:
Volunteers welcome. A GNU sync isn't a small task, "diff
-u" between
our current vc.el and the Emacs 21.2 one is about 240kB...
I don't see a "Synced with" note in our vc.el, so partial syncs are
welcome too, eg. enough to get the subversion stuff working.
vc in Emacs 21 seems to be very different from the old implementation, it
would be very cool to have it in XEmacs. It basically defines a api for vc
backends, making it more convienient for 3rd party people to make backends
for their vc system of choice, such as starteam¹ and appearently
subversion.
From vc-hook.el² Emacs 21.x:
;; We keep properties on each symbol naming a backend as follows:
;; * `vc-functions': an alist mapping vc-FUNCTION to vc-BACKEND-FUNCTION.
(defun vc-make-backend-sym (backend sym)
"Return BACKEND-specific version of VC symbol SYM."
(intern (concat "vc-" (downcase (symbol-name backend))
"-" (symbol-name sym))))
(defun vc-find-backend-function (backend fun)
"Return BACKEND-specific implementation of FUN.
If there is no such implementation, return the default implementation;
if that doesn't exist either, return nil."
(let ((f (vc-make-backend-sym backend fun)))
(if (fboundp f) f
;; Load vc-BACKEND.el if needed.
(require (intern (concat "vc-" (downcase (symbol-name backend)))))
(if (fboundp f) f
(let ((def (vc-make-backend-sym 'default fun)))
(if (fboundp def) (cons def backend) nil))))))
Porting it to XEmacs is beyond me, but here's to hoping someone steps up :),
-- René
Footnotes:
¹
http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/starteam-el/starteam/elisp...
²
http://savannah.gnu.org/cgi-bin/viewcvs/emacs/emacs/lisp/vc-hooks.el