2012/9/12 Allan Odgaard
<mailinglist@textmate.org>
On Sep 11, 2012, at 10:24 AM, Yvon Thoraval <yvon.thoraval@gmail.com> wrote:
> Here it is : […] Save failed! File exists - (bin/menu.zsh, bin/menu.zsh~)
> […]
> Also, i should mention i had a file "bin/menu.zsh~" BEFORE using rmate, then, removing it before a second rmate gave :
> […]
> Then, rmate is working except another file with the suffix "~" exists too.
I’m a little unclear as to whether or not you solved your problem.
It might be that File::rename does not unlink destination first. Given that you are using rvm and the script is in ruby, I would assume you can test the relevant code on your version of ruby to see why it has a problem.
OK, I've found a solution working even if I want to edit a file of given path where path~ does exist.
I've just changed the way the hard linked file is name, instead of "#{path}~" i name it npath with, as a starting point i let :
npath="#{path}~"
and if npath allready exist i change it to :
npath="#{npath}~"
^_________ notice the "n" here
then I changed the lines 97/104 to :
npath="#{path}~"
if File.exist? path
while File.exist? npath
npath="#{npath}~"
end
puts "Creating hard link from #{path} to #{npath}." if $settings.verbose
File.link(path, npath)
end
and here, suppose i do have both files "~/bin/menu.zsh" and "~/bin/menu.zsh~" where I want to remote edit "~/bin/menu.zsh", internally (of rmate-test) the npath would be in this case "~/bin/menu.zsh~~" (with two ~) which doesn't exist.
that makes the rmate-test working :
yt@D620 /home/yt $ rmate-test -v bin/menu.zsh
yt@D620 /home/yt $ Connect: ‘220 imyt.local RMATE TextMate (Darwin 11.4.0)’
Saving bin/menu.zsh
Creating hard link from bin/menu.zsh to bin/menu.zsh~~.
Closed bin/menu.zsh
Done
yt@D620
see attached rmate-test, the modified rmate.