unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
* C-x 4 a ceased to work in *cvs-diff* buffer
@ 2004-06-06 10:55 Kai Grossjohann
  2004-06-06 22:33 ` Richard Stallman
  2004-10-10  3:33 ` Stefan
  0 siblings, 2 replies; 7+ messages in thread
From: Kai Grossjohann @ 2004-06-06 10:55 UTC (permalink / raw)


I used to do `=' on a file in a *cvs* buffer, then position point on
a change in the resulting *cvs-diff* buffer, then hit C-x 4 a to
compose a ChangeLog entry.

Now this doesn't find the file anymore and asks me which file is
meant.  It suggests the root directory of the working copy, instead
of the subdir that contains the file.

I first observed this behavior some weeks ago.

(I guess this bug only happens if the file is in a subdir of the
working copy.)

Kai

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: C-x 4 a ceased to work in *cvs-diff* buffer
  2004-06-06 10:55 C-x 4 a ceased to work in *cvs-diff* buffer Kai Grossjohann
@ 2004-06-06 22:33 ` Richard Stallman
  2004-10-10  3:33 ` Stefan
  1 sibling, 0 replies; 7+ messages in thread
From: Richard Stallman @ 2004-06-06 22:33 UTC (permalink / raw)
  Cc: emacs-devel

    I used to do `=' on a file in a *cvs* buffer, then position point on
    a change in the resulting *cvs-diff* buffer, then hit C-x 4 a to
    compose a ChangeLog entry.

    Now this doesn't find the file anymore and asks me which file is
    meant.  It suggests the root directory of the working copy, instead
    of the subdir that contains the file.

I would guess that the recent redesign of M-x compile broke this.
Could the people involved please take a look?

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: C-x 4 a ceased to work in *cvs-diff* buffer
  2004-06-06 10:55 C-x 4 a ceased to work in *cvs-diff* buffer Kai Grossjohann
  2004-06-06 22:33 ` Richard Stallman
@ 2004-10-10  3:33 ` Stefan
  2004-10-10 12:07   ` Kai Grossjohann
  1 sibling, 1 reply; 7+ messages in thread
From: Stefan @ 2004-10-10  3:33 UTC (permalink / raw)
  Cc: emacs-devel

> I used to do `=' on a file in a *cvs* buffer, then position point on
> a change in the resulting *cvs-diff* buffer, then hit C-x 4 a to
> compose a ChangeLog entry.

> Now this doesn't find the file anymore and asks me which file is
> meant.  It suggests the root directory of the working copy, instead
> of the subdir that contains the file.

> I first observed this behavior some weeks ago.

> (I guess this bug only happens if the file is in a subdir of the
> working copy.)

I can't reproduce this here.  Could you give some more info?


        Stefan

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: C-x 4 a ceased to work in *cvs-diff* buffer
  2004-10-10  3:33 ` Stefan
@ 2004-10-10 12:07   ` Kai Grossjohann
  2004-10-10 12:20     ` Kai Grossjohann
                       ` (2 more replies)
  0 siblings, 3 replies; 7+ messages in thread
From: Kai Grossjohann @ 2004-10-10 12:07 UTC (permalink / raw)


Stefan <monnier@iro.umontreal.ca> writes:

> I can't reproduce this here.  Could you give some more info?

Perhaps two hours ago I updated my working copy, and it still
happens.  I proceeded as follows:

    cvs update -dP
    ./kai.sh make
    ./kai.sh install
    emacs -Q
    M-x cvs-update RET ~/work/gnu/emacs RET
    ;; Hit = on the lisp/net/tramp.el line.
    ;; Go to the *cvs-diff* buffer/window and navigate to the + line.
    C-x 4 a
    ;; Minibuffer shows: Use file tramp.el: ~/work/gnu/emacs/tramp.el

Here is the *cvs* buffer after M-x cvs-update RET:

    Repository : kai@subversions.gnu.org:/cvsroot/emacs
    Module     : emacs
    Working dir: ~/work/gnu/emacs/



    In directory .:
                  Modified                .cvsignore
                  Modified                configure
                  Unknown                 foo
    In directory lisp:
                  Modified                lisp/.cvsignore
    In directory lisp/emacs-lisp:
                  Unknown                 lisp/emacs-lisp/semantic.cache
    In directory lisp/net:
                  Modified                lisp/net/.cvsignore
                  Modified                lisp/net/tramp.el
    In directory lispref:
                  Unknown                 lispref/semantic.cache
    In directory man:
                  Modified                man/.cvsignore
    In directory src:
                  Modified                src/.cvsignore

    --------------------- End ---------------------
    -- last cmd: cvs -f diff -u -N lisp/net/tramp.el --

And here is the *cvs-diff* buffer for tramp.el:

    pcl-cvs: descending directory lisp/net/
    Index: tramp.el
    ===================================================================
    RCS file: /cvsroot/emacs/emacs/lisp/net/tramp.el,v
    retrieving revision 1.50
    diff -u -r1.50 tramp.el
    --- tramp.el	10 Aug 2004 20:49:45 -0000	1.50
    +++ tramp.el	10 Oct 2004 11:57:11 -0000
    @@ -2370,7 +2370,7 @@
                                   (point) (progn (end-of-line) (point)))))
                     (equal tramp-buffer-file-attributes attr))
                    ;; If file does not exist, say it is not modified.
    -		(t nil)))))))
    +		(t t)))))))

     (defadvice clear-visited-file-modtime (after tramp activate)
       "Set `tramp-buffer-file-attributes' back to nil.

All of this was done on a FreeBSD 5.3 beta machine, though I'm now
posting from Debian GNU/Linux.

Does this provide the detail you need?

This was the first time ever I used "emacs -Q", I vaguely remember
that it is something like "emacs -q -no-site-file", only more so.

Kai

PS: You are probably wondering about my kai.sh script for building
    Emacs.  It is not very sophisticated, but just so that you know
    what I've been doing, I'll include it here:

#!/bin/sh
what="$1"

case x$what in
	x[cm]*)
		make maintainer-clean
		autoconf257
		./configure --prefix=$HOME/sw/emacs --with-gtk
		make bootstrap
		;;
	xi*)
		rm -rf $HOME/sw/SAV.emacs
		mv $HOME/sw/emacs $HOME/sw/SAV.emacs
		make install tags
		( cd $HOME/sw/emacs/share/emacs;
		  mv site-lisp site-lisp.SAV;
		  ln -s /usr/local/share/emacs/site-lisp )
		;;
	*)
		echo "Usage: $0 <what>"
		echo "<what> can be 'make' or 'install'"
		exit 2
		;;
esac

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: C-x 4 a ceased to work in *cvs-diff* buffer
  2004-10-10 12:07   ` Kai Grossjohann
@ 2004-10-10 12:20     ` Kai Grossjohann
  2004-10-10 21:45     ` Stefan
  2004-10-23 20:06     ` Kai Grossjohann
  2 siblings, 0 replies; 7+ messages in thread
From: Kai Grossjohann @ 2004-10-10 12:20 UTC (permalink / raw)


Kai Grossjohann <kai@emptydomain.de> writes:

>     ;; Go to the *cvs-diff* buffer/window and navigate to the + line.

Perhaps it is unclear which line I meant.  It is...

> And here is the *cvs-diff* buffer for tramp.el:
>
>     pcl-cvs: descending directory lisp/net/
>     Index: tramp.el
>     ===================================================================
>     RCS file: /cvsroot/emacs/emacs/lisp/net/tramp.el,v
>     retrieving revision 1.50
>     diff -u -r1.50 tramp.el
>     --- tramp.el	10 Aug 2004 20:49:45 -0000	1.50
>     +++ tramp.el	10 Oct 2004 11:57:11 -0000
>     @@ -2370,7 +2370,7 @@
>                                    (point) (progn (end-of-line) (point)))))
>                      (equal tramp-buffer-file-attributes attr))
>                     ;; If file does not exist, say it is not modified.
>     -		(t nil)))))))
>     +		(t t)))))))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
...this line.  Point was at the beginning of the line when I hit C-x 4 a.

>      (defadvice clear-visited-file-modtime (after tramp activate)
>        "Set `tramp-buffer-file-attributes' back to nil.

Kai

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: C-x 4 a ceased to work in *cvs-diff* buffer
  2004-10-10 12:07   ` Kai Grossjohann
  2004-10-10 12:20     ` Kai Grossjohann
@ 2004-10-10 21:45     ` Stefan
  2004-10-23 20:06     ` Kai Grossjohann
  2 siblings, 0 replies; 7+ messages in thread
From: Stefan @ 2004-10-10 21:45 UTC (permalink / raw)
  Cc: emacs-devel

>> I can't reproduce this here.  Could you give some more info?

> Perhaps two hours ago I updated my working copy, and it still
> happens.  I proceeded as follows:
[...]
> And here is the *cvs-diff* buffer for tramp.el:

>     pcl-cvs: descending directory lisp/net/
>     Index: tramp.el
>     ===================================================================
>     RCS file: /cvsroot/emacs/emacs/lisp/net/tramp.el,v
>     retrieving revision 1.50
>     diff -u -r1.50 tramp.el
>     --- tramp.el	10 Aug 2004 20:49:45 -0000	1.50
>     +++ tramp.el	10 Oct 2004 11:57:11 -0000

Hmm... it seems pcl-cvs decided to run `cvs diff' in `single-dir' mode
(i.e. one invocation per directory).  So presumably `cvs-execute-single-dir'
is set to t.  Could you check why that is?  It's probably because
`cvs-version' is not initialized to a proper value.

The other problem is that diff-mode does not take advantage of the
annotation `pcl-cvs: descending directory lisp/net/': the code is simply
missing (the annotation is currently only used by pcl-cvs itself and by
cvs-status.el).

Could you try the patch below that tweaks diff-mode to pay attention to the
pcl-cvs annotation?


        Stefan


--- orig/lisp/diff-mode.el
+++ mod/lisp/diff-mode.el
@@ -1,6 +1,7 @@
 ;;; diff-mode.el --- a mode for viewing/editing context diffs
 
-;; Copyright (C) 1998,1999,2000,01,02,03,2004  Free Software Foundation, Inc.
+;; Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004
+;;           Free Software Foundation, Inc.
 
 ;; Author: Stefan Monnier <monnier@cs.yale.edu>
 ;; Keywords: convenience patch diff
@@ -517,14 +518,16 @@
 	       (list (if old (match-string 2) (match-string 4))
 		     (if old (match-string 4) (match-string 2)))))))))
 
-(defun diff-find-file-name (&optional old)
+(defun diff-find-file-name (&optional old prefix)
   "Return the file corresponding to the current patch.
-Non-nil OLD means that we want the old file."
+Non-nil OLD means that we want the old file.
+PREFIX is only used internally: don't use it."
   (save-excursion
     (unless (looking-at diff-file-header-re)
       (or (ignore-errors (diff-beginning-of-file))
 	  (re-search-forward diff-file-header-re nil t)))
     (let ((fs (diff-hunk-file-names old)))
+      (if prefix (setq fs (mapcar (lambda (f) (concat prefix f)) fs)))
       (or
        ;; use any previously used preference
        (cdr (assoc fs diff-remembered-files-alist))
@@ -546,6 +549,13 @@
        (and (string-match "\\.rej\\'" (or buffer-file-name ""))
 	    (let ((file (substring buffer-file-name 0 (match-beginning 0))))
 	      (when (file-exists-p file) file)))
+       ;; If we haven't found the file, maybe it's because we haven't paid
+       ;; attention to the PCL-CVS hint.
+       (and (not prefix)
+	    (boundp 'cvs-pcl-cvs-dirchange-re)
+	    (save-excursion
+	      (re-search-backward cvs-pcl-cvs-dirchange-re nil t))
+	    (diff-find-file-name old (match-string 1)))
        ;; if all else fails, ask the user
        (let ((file (read-file-name (format "Use file %s: " (or (first fs) ""))
 				   nil (first fs) t (first fs))))
@@ -1422,5 +1432,5 @@
 ;; use `combine-after-change-calls' to minimize the slowdown of font-lock.
 ;;
 
-;;; arch-tag: 2571d7ff-bc28-4cf9-8585-42e21890be66
+;; arch-tag: 2571d7ff-bc28-4cf9-8585-42e21890be66
 ;;; diff-mode.el ends here

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: C-x 4 a ceased to work in *cvs-diff* buffer
  2004-10-10 12:07   ` Kai Grossjohann
  2004-10-10 12:20     ` Kai Grossjohann
  2004-10-10 21:45     ` Stefan
@ 2004-10-23 20:06     ` Kai Grossjohann
  2 siblings, 0 replies; 7+ messages in thread
From: Kai Grossjohann @ 2004-10-23 20:06 UTC (permalink / raw)


Kai Grossjohann <kai@emptydomain.de> writes:

> Stefan <monnier@iro.umontreal.ca> writes:
>
>> I can't reproduce this here.  Could you give some more info?
>
> Perhaps two hours ago I updated my working copy, and it still
> happens.  I proceeded as follows:

Now it's gone.  Duh.  I didn't apply the patch that Stefan suggested
(forgot it).

Kai

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2004-10-23 20:06 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2004-06-06 10:55 C-x 4 a ceased to work in *cvs-diff* buffer Kai Grossjohann
2004-06-06 22:33 ` Richard Stallman
2004-10-10  3:33 ` Stefan
2004-10-10 12:07   ` Kai Grossjohann
2004-10-10 12:20     ` Kai Grossjohann
2004-10-10 21:45     ` Stefan
2004-10-23 20:06     ` Kai Grossjohann

Code repositories for project(s) associated with this public inbox

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

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).