[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: C-x C-q more useful as toggle-read-only
From: |
Klaus Berndl |
Subject: |
Re: C-x C-q more useful as toggle-read-only |
Date: |
24 Oct 2000 19:24:53 +0200 |
User-agent: |
Gnus/5.0807 (Gnus v5.8.7) Emacs/20.7 |
On 24 Oct 2000, Michael J. Downes wrote:
> Klaus.Berndl@sdm.de (Klaus Berndl) writes:
>
> > If a file is under version control IMHO toggle-read-only makes no sense,
> > in such a case your options are to check out, uncheckout or check in.
> ..
> > I'm wondering in which respect the current behavior of
> > *vc-toggle-read-only* doesn't satisfy some people??
>
> Here is an example:
>
> On Tuesday I check out foo.bar in module A and begin making some
> changes. On Wednesday I get called away to some other tasks. On Friday I
> remember that I was working on something in the module A but can't
> recall which file so I start looking at some files with
> find-file-read-only. (It is not uncommon for me to use
> find-file-read-only when I am not sure that I will be changing the
> file.) When I find foo.bar I say "Aha, yes, this is where I was
> working". The file is already checked out and writable, but the buffer
> is read only because of the command that I used to get the file.
>
> Now given that I have the file in front of my eyes, what is the most
> direct way to continue working on it? toggle-read-only. But if I do C-x
> C-q I get instead vc-toggle-read-only whose default action in this case
> is to *ask if I want to revert to the master version*!?!
>
,----
| (defun vc-toggle-read-only (&optional verbose)
| "Change read-only status of current buffer, perhaps via version control.
| If the buffer is visiting a file registered with version control,
| then check the file in or out. Otherwise, just change the read-only flag
| of the buffer.
| With prefix argument, ask for version number to check in or check out.
| Check-out of a specified version number does not lock the file;
| to do that, use this command a second time with no argument."
| (interactive "P")
| (cond ( ;; file is under version-control AND buffer is read only AND file
| ;; is writeable therefore it must be checked out. Therefore the
| ;; action should only be a toggle-read-only and not any
| ;; version-control action!
| ;; Does not exactly know if this works for CVS??!!
| (and (or (and (boundp 'vc-dired-mode) vc-dired-mode)
| ;; use boundp because vc.el might not be loaded
| (vc-backend (buffer-file-name)))
| buffer-read-only
| (file-writable-p buffer-file-name))
| (toggle-read-only))
| ( ;; file is under version-control so do the next appropriate
| ;; action in vc
| (or (and (boundp 'vc-dired-mode) vc-dired-mode)
| ;; use boundp because vc.el might not be loaded
| (vc-backend (buffer-file-name)))
| (vc-next-action verbose))
| ( ;; file is not under version control so do only a toggle-read-only
| t
| (toggle-read-only))))
| (define-key global-map "\C-x\C-q" 'vc-toggle-read-only)
`----
OK, your example is plausible for me. Does this slightly modified version of
*vc-toggle-read-only* what you want (s.a.)? I have commented the different
cases of the (cond...)-form and what should be done.
I´m not so firm with RCS, CVS and SCCS because i´m using ClearCase and with
clearcase.el the *clearcase-toggle-read-only* has exactly the behavior you
need and is bound to C-x C-q. Í have tried the scenario you described above
and it works fine. Please test the code above and tell me if works!
(the documentation-string of the new version is not adjusted)
> [...]
>
> But in general it seems to me automatically doing version control
> operations without confirmation violates the principle of least
> surprise; therefore it should be an expert option rather than the
> default behavior.
If an automatic does the correct thing then it is really the best for a newbie
IMHO :-)
Klaus
--
Klaus Berndl mailto: klaus.berndl@sdm.de
sd&m AG http://www.sdm.de
software design & management
Thomas-Dehler-Str. 27, 81737 München, Germany
Tel +49 89 63812-392, Fax -220
- Re: C-x C-q more useful as toggle-read-only, Jari Aalto+mail.emacs, 2000/10/22
- RE: C-x C-q more useful as toggle-read-only, Mickey Ferguson, 2000/10/23
- Re: C-x C-q more useful as toggle-read-only, Paul D. Smith, 2000/10/23
- Re: C-x C-q more useful as toggle-read-only, Eli Zaretskii, 2000/10/24
- Re: C-x C-q more useful as toggle-read-only, Klaus Berndl, 2000/10/24
- Re: C-x C-q more useful as toggle-read-only, Michael J Downes, 2000/10/24
- Re: C-x C-q more useful as toggle-read-only,
Klaus Berndl <=
- Re: C-x C-q more useful as toggle-read-only, Eli Zaretskii, 2000/10/24
- Re: C-x C-q more useful as toggle-read-only, Michael John Downes, 2000/10/24
- Re: C-x C-q more useful as toggle-read-only, Klaus Berndl, 2000/10/25
- Re: C-x C-q more useful as toggle-read-only, Eli Zaretskii, 2000/10/25
- Re: C-x C-q more useful as toggle-read-only, Francesco Potorti`, 2000/10/25
- Re: C-x C-q more useful as toggle-read-only, Klaus Berndl, 2000/10/25
- Re: C-x C-q more useful as toggle-read-only, Andre Spiegel, 2000/10/26
- Re: C-x C-q more useful as toggle-read-only, Michael J Downes, 2000/10/26
- Re: C-x C-q more useful as toggle-read-only, Eli Zaretskii, 2000/10/26
- Re: C-x C-q more useful as toggle-read-only, Francesco Potorti`, 2000/10/30