emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: vc-hg-rename-file does not expand the file name arguments


From: Dan Nicolaescu
Subject: Re: vc-hg-rename-file does not expand the file name arguments
Date: Mon, 25 Jan 2010 22:24:51 -0800 (PST)

Alex Harsanyi <address@hidden> writes:

  > I believe there is a problem with the implementation of
  > `vc-hg-rename-file`, in the call:  (vc-hg-command nil 0 new "mv" old),
  > only the NEW parameter will be expanded using `expand-file-name`,
  > because `vc-hg-command` treats it as a file. The OLD parameter is not
  > expanded because it is treated as a flag.  The problem is that
  > `vc-rename-file` will read a file name from he minibuffer and pass in
  > a filename like "~/Projects/test-repo/file1.txt" to the function.
  > This name is passed directly to the "hg" executable which will fail
  > because the file does not exist (hg does not do file-name expansion
  > internally).
  > 
  > For example, create the following mercurial repository:
  > 
  > $ mkdir ~/test-repo
  > $ cd ~/test-repo
  > $ hg init .
  > $ echo Hello > ./file1.txt
  > $ hg add file1.txt
  > $ hg commit -m "File1 added"
  > 
  > Now, open file1.txt in Emacs, and try to rename it using "M-x
  > vc-rename-file".  The rename will fail and the *vc* buffer will
  > contain:
  > 
  > ~/test-repo/file1.txt: No such file or directory
  > abort: no files to copy
  > 
  > I believe the simplest fix is to call `expand-file-name` on the file
  > names before passing them to the "hg" command.
  > 
  > Based on the comment in the code, I think the same problem exists with
  > the bzr backend as well.

It would be better if vc-rename-file would do the name expansion so that
backends do not have to.





reply via email to

[Prev in Thread] Current Thread [Next in Thread]