[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: vc-checkin (RCS) always. Problem with vc-checkin
From: |
Pierre Lorenzon |
Subject: |
Re: vc-checkin (RCS) always. Problem with vc-checkin |
Date: |
Mon, 07 Sep 2015 05:49:04 +0200 (CEST) |
Hi
From: Uwe Brauer <oub@mat.ucm.es>
Subject: vc-checkin (RCS) always. Problem with vc-checkin
Date: Sun, 06 Sep 2015 21:04:29 +0200
> Hello
>
> The following code can be found in
>
> http://www.emacswiki.org/emacs/VersionControlAlways
>
> (defun ensure-in-vc-or-check-in ()
> "Automatically checkin file ,v can be in the same directory or in the
> subdirectory RCS. The idea is to call that function only for files
> not for buffers. See the function ensure-in-vc-or-check-in-modes
> which could be use in an apropriate HOOK."
> (interactive)
> (when (buffer-file-name)
> (if (or (and (file-exists-p (format "%s,v" (buffer-file-name))))
> (and (file-exists-p (format "RCS/%s,v"
> (file-name-nondirectory buffer-file-name)))))
> (let ((p (point)))
> (progn
> (vc-checkin (buffer-file-name) nil "")
> (vc-toggle-read-only)
> (message "Checked in"))
> (goto-char p))
> (progn
> (message "You need to check this in! ")))))
>
> I modified the original code
> by adding (format "RCS/%s,v" (file-name-nondirectory buffer-file-name)
>
>
>
> The point is the code works for a old version of VC, however for GNU
> emacs 25
> (vc-checkin (buffer-file-name) nil "")
>
> does not work any more.
>
> The docstring for the old function said:
> (vc-checkin FILE &optional REV COMMENT INITIAL-CONTENTS)
> file for the new function:
> (vc-checkin FILES BACKEND &optional COMMENT INITIAL-CONTENTS)
Ok that the form I know. backend is required.
> so I thought
>
> (vc-checkin (buffer-file-name) 'RCS nil "")
> or
> (vc-checkin (buffer-file-name) 'RCS "")
>
> Should work, it does not. The following error is given
In fact it does not work. vc-checkin launches a very
complicated process of interaction opening the log buffer to
setup the check in message. In fact if you do not want this
process to run interactively vc-checkin is maybe not the
right method. You might replace your code by :
(vc-call-backend 'RCS 'checkin (list (buffer-file-name)) "")
Sure it won't accomplish certain tasks around check in
performed by vc-checkin but if yuou only want to check in
....
Regards
Pierre
> vc-delistify seems the culprit, but I am stack.
>
>
> Thanks
>
> Uwe Brauer
>
>
> --8<---------------cut here---------------start------------->8---
>
> Debugger entered--Lisp error: (wrong-type-argument sequencep 47)
> mapconcat(identity
> "/home/oub/emacs/site-lisp/versch/vc-ensure-checkin.el" " ")
> vc-delistify("/home/oub/emacs/site-lisp/versch/vc-ensure-checkin.el")
> #[514
> "\303\304\305!\"\210\211\203
>
>