I just pulled the new versions of Net:SSH and friends with the binary-
mode fixes, and they work great.  I can remove the patches I put in my
Capfile now.  Thanks!

On May 25, 12:29 am, Jamis Buck <[EMAIL PROTECTED]> wrote:
> This is Net::SFTP and Net::SCP failing to open the file in binary mode
> on windows. I'll get that fixed as soon as I can.
>
> - Jamis
>
> On May 22, 2008, at 8:31 AM, Andrew Watts wrote:
>
>
>
> > I've got a task in my Capfile called diff_file which takes a file,
> > downloads it from one of the servers to a temp directory, and runs a
> > diff utility between the local version and the downloaded version.
> > Ever since Capistrano 2.3 and its attendant upgrades to Net::SSH and
> > friends, I've been getting line-feed issues diffing files.
>
> > I have a file, which has DOS line-enders (CRLF).  On the (Linux)
> > server, it also has CRLF line-enders.  On my (Windows) development
> > machine, it also has CRLF line-enders.  However, when I download the
> > file with my diff_file command, it gets an extra CR character at the
> > end of each line, as if the file was being transferred in text mode.
> > I looked through the code and I didn't see a way I could affect the
> > transfer mode with either SCP or SFTP.  Is there a way to do this?  Is
> > this indeed what's going on?
>
> > Here is my diff_file command:
>
> > desc <<-DESC
> >  Diffs a file against a file in the deployed version.
>
> >  To use this task, specify the file you want to diff in the FILE
> >  environment variable, or in the file variable.  The default diff
> >  command for this is set to use TortoiseMerge on Windows, assuming
> >  you have installed TortoiseSVN to C:\\Program Files\\TortoiseSVN.
> >  If you are on Linux or MacOSX, the diff command used is "diff -u".
> > DESC
> > task :diff_file do
> >  file = ENV['FILE'] || ENV['FILES'] || self[:file] || self[:files] ||
> > ''
> >  name = File.basename(file)
> >  if PLATFORM =~ /win32/i
> >    diff_cmd = "C:\\Program Files\\TortoiseSVN\\bin\\TortoiseMerge.exe
> > tmp\\#{name} #{file.gsub(/\//, '\\')}"
> >  else
> >    diff_cmd = "diff -u tmp/#{name} #{file}"
> >  end
> >  diff_cmd ||= ENV['DIFF_CMD'] || self[:diff_cmd]
>
> >  begin
> >    get "#{current_path}/#{file}", "tmp/#{name}"
> >    system(diff_cmd)
> >  rescue Net::SFTP::Operations::StatusException => e
> >    puts "Retrieving the remote file failed: #{e.description}"
> >  end
> > end
> > >
>
>
>  smime.p7s
> 3KDownload

--~--~---------~--~----~------------~-------~--~----~
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at http://groups.google.com/group/capistrano
-~----------~----~----~----~------~----~------~--~---

Reply via email to