unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
From: Dan Nicolaescu <dann@ics.uci.edu>
To: thierry.volpiatto@gmail.com
Cc: 1741@emacsbugs.donarmstrong.com
Subject: bug#1741: 23.0.60; vc fail to register file while logged as /su:: with tramp
Date: Wed, 8 Apr 2009 09:24:06 -0700 (PDT)	[thread overview]
Message-ID: <200904081624.n38GO6D6013154@godzilla.ics.uci.edu> (raw)
In-Reply-To: <87d4bnfkxn.fsf@tux.homenetwork> (thierry volpiatto's message of "Wed, 08 Apr 2009 13:23:48 +0200")

thierry.volpiatto@gmail.com writes:

  > Hi Dan!
  > Thank you to have a look at this bug.
  > It's a long time, i didn't remember i sent this bug.
  > The bug is still here.(23.0.92)
  > 
  > Dan Nicolaescu <dann@ics.uci.edu> writes:
  > 
  > > Thierry Volpiatto <thierry.volpiatto@gmail.com> writes:
  > >
  > >   > Please write in English if possible, because the Emacs maintainers
  > >   > usually do not have translators to read other languages for them.
  > >   > 
  > >   > Your bug report will be posted to the emacs-pretest-bug@gnu.org mailing list.
  > >   > 
  > >   > Please describe exactly what actions triggered the bug
  > >   > and the precise symptoms of the bug:
  > >   > 
  > >   > Hi, 
  > >   > i can't register a file with vc/rcs when i am logged as root throught
  > >   > tramp.
  > >   > 1) C-x v i
  > >   > 2) Create RCS dir (y/n) ==> The dir is created.
  > >   > 3) But now ==> _Here the debug output_:
  > >   > 
  > >   > ,----
  > >   > | Debugger entered--Lisp error: (wrong-type-argument stringp nil)
  > >   > |   file-exists-p(nil)
  > >   > |   vc-insert-file(nil "^[0-9]")
  > >   > |   vc-rcs-fetch-master-state("/su:root@tux.homenetwork:/usr/local/bin/editeur.sh")
  > >   > |   vc-rcs-working-revision("/su:root@tux.homenetwork:/usr/local/bin/editeur.sh")
  > >   > |   apply(vc-rcs-working-revision "/su:root@tux.homenetwork:/usr/local/bin/editeur.sh")
  > >   > |   vc-call-backend(RCS working-revision "/su:root@tux.homenetwork:/usr/local/bin/editeur.sh")
  > >   > |   vc-working-revision("/su:root@tux.homenetwork:/usr/local/bin/editeur.sh")
  > >   > |   vc-default-mode-line-string(RCS "/su:root@tux.homenetwork:/usr/local/bin/editeur.sh")
  > >   > |   apply(vc-default-mode-line-string RCS "/su:root@tux.homenetwork:/usr/local/bin/editeur.sh")
  > >   > |   vc-call-backend(RCS mode-line-string "/su:root@tux.homenetwork:/usr/local/bin/editeur.sh")
  > >   > |   vc-mode-line("/su:root@tux.homenetwork:/usr/local/bin/editeur.sh")
  > >   > |   run-hook-with-args(vc-mode-line "/su:root@tux.homenetwork:/usr/local/bin/editeur.sh")
  > >   > |   vc-resynch-window("/su:root@tux.homenetwork:/usr/local/bin/editeur.sh" t t)
  > >   > |   vc-resynch-buffer("/su:root@tux.homenetwork:/usr/local/bin/editeur.sh" t t)
  > >   > | 
  > >   > | [...]
  > >   > | 
  > >   > | [G70600 G70601 rev comment file --cl-dolist-temp-- 
  > >   > | message "Registering %s... " mapc vc-file-clearprops vc-call-backend
  > >   > |   register nil vc-file-setprop 
  > >   > | vc-backend "Registering %s... done"] 6] (quote --files--) (quote --backend--) --cl-rest--)))
  > >   > |   vc-register(nil)
  > >   > |   call-interactively(vc-register nil nil)
  > >   > `----
  > >   > 
  > >   > _And if i want to delete RCS directory from dired_:
  > >   > 
  > >   > ,----
  > >   > | (file-error Couldn't delete /su:root@tux.homenetwork:/usr/local/bin/RCS)
  > >   > `----
  > >   > 
  > >   > However if i open an emacs  root session i can register my file as
  > >   > normal.
  > >
  > > What happens is that vc-check-master-templates gets called with
  > > "/su:root@tux.homenetwork:/usr/local/bin/editeur.sh", and it calls 
  > > (file-exists-p "/su:root@tux.homenetwork:/usr/local/bin/editeur.sh")
  > > which returns nil.
  > No, `file-exists-p' recognize tramp file name and return t.
  > 
  > (file-exists-p "/su:root@tux.homenetwork:/usr/local/bin/editeur.sh")
  > ==>t

It's a bug in TRAMP: 

If I create a new file: "/su:root@localhost:/tmp/blah"
then to C-x v v to register it, it fails.  But I can see that the 
/tmp/RCS/blah,v is created.  If after that I do:

M-: (file-exists-p "/su:root@localhost:/tmp/RCS/blah,v") RET
the result is nil.

If I start a new emacs and do:
M-: (file-exists-p "/su:root@localhost:/tmp/RCS/blah,v") RET
the result is t.




  > The problem is, i think, vc call `file-exists-p' with (vc-name fname) as
  > argument instead of "file_name":
  > 
  > ,----[ With a tramp filename return error ]
  > | (file-exists-p (vc-name "/su:root@tux.homenetwork:/usr/local/bin/editeur.sh"))
  > | ==>
  > | Debugger entered--Lisp error: (wrong-type-argument stringp nil)
  > |   file-exists-p(nil)
  > |   eval((file-exists-p (vc-name "/su:root@tux.homenetwork:/usr/local/bin/editeur.sh")))
  > |   eval-expression((file-exists-p (vc-name "/su:root@tux.homenetwork:/usr/local/bin/editeur.sh")) nil)
  > |   call-interactively(eval-expression nil nil)
  > `----
  > 
  > ,----[ With a regular filename return t ]
  > | (file-exists-p (vc-name "~/bin/call-gnus.sh"))
  > | ==>t
  > `----
  > 
  > So it seem the problem come from vc that try to set properties on
  > filename with `vc-name' and fail on tramp filename.
  > (`vc-name' call `vc-file-getprop')
  > 
  > Thought i didn't look at the code carefully, so i am may be wrong.
  > 
  > 
  > > There's a few other `file-exists-p' calls in vc*.el, so it's likely that
  > > other things can go wrong if this one instance is somehow fixed.
  > >
  > > If someone familiar with what tramp needs wants to get this to work,
  > > about all vc calls need to be tested to make sure they don't do
  > > something that tramp can't do.
  > >
  > 
  > -- 
  > A + Thierry Volpiatto
  > Location: Saint-Cyr-Sur-Mer - France






  reply	other threads:[~2009-04-08 16:24 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <200904150011.n3F0BT8Q005193@godzilla.ics.uci.edu>
2008-12-30 10:48 ` bug#1741: 23.0.60; vc fail to register file while logged as /su:: with tramp Thierry Volpiatto
2009-04-07 16:57   ` Dan Nicolaescu
2009-04-08 11:23     ` thierry.volpiatto
2009-04-08 16:24       ` Dan Nicolaescu [this message]
2009-04-08 17:53         ` Stefan Monnier
2009-04-09 13:51           ` Michael Albinus
2009-04-09 14:38             ` Stefan Monnier
2009-04-09 15:06               ` Michael Albinus
2009-04-09 18:23                 ` Stefan Monnier
2009-04-12 18:15                   ` Michael Albinus
2009-04-12 19:41                     ` Stefan Monnier
2009-04-12 19:56                       ` Michael Albinus
2009-04-12 22:51                         ` Stefan Monnier
2009-04-13  9:30                           ` Michael Albinus
2009-04-13 12:24                             ` Stefan Monnier
2009-04-14 15:19                               ` Michael Albinus
2009-04-14 17:06                                 ` Stefan Monnier
2009-04-15 20:55                                   ` Michael Albinus
2009-04-15  0:20   ` bug#1741: marked as done (23.0.60; vc fail to register file while logged as /su:: with tramp) Emacs bug Tracking System

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

  List information: https://www.gnu.org/software/emacs/

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

  git send-email \
    --in-reply-to=200904081624.n38GO6D6013154@godzilla.ics.uci.edu \
    --to=dann@ics.uci.edu \
    --cc=1741@emacsbugs.donarmstrong.com \
    --cc=thierry.volpiatto@gmail.com \
    /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 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).