<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -1,7 +1,10 @@
-*SVN*
+*unreleased*
+
+* Add an explicit dependency on Net::SSH and Net::SFTP versions less than 1.99.0 so that cap1 can coexist with net-ssh v2 [Jamis Buck]
 
 * Don't send no-auth-cache if no auth credentials are given [Jonathan Younger]
 
+
 *1.4.1* (February 24, 2007)
 
 * Use the no-auth-cache option with subversion so that username/password tokens do not get cached by capistrano usage [Jonathan Younger]</diff>
      <filename>CHANGELOG</filename>
    </modified>
    <modified>
      <diff>@@ -20,8 +20,8 @@ Gem::Specification.new do |s|
 
   s.add_dependency 'rake', &quot;&gt;= 0.7.0&quot;
 
-  s.add_dependency 'net-ssh', &quot;&gt;= #{Capistrano::Version::SSH_REQUIRED.join(&quot;.&quot;)}&quot;
-  s.add_dependency 'net-sftp', &quot;&gt;= #{Capistrano::Version::SFTP_REQUIRED.join(&quot;.&quot;)}&quot;
+  s.add_dependency 'net-ssh', &quot;&gt;= #{Capistrano::Version::MINIMUM_SSH_REQUIRED.join(&quot;.&quot;)}&quot;, &quot;&lt; #{Capistrano::Version::MAXIMUM_SSH_REQUIRED.join('.')}&quot;
+  s.add_dependency 'net-sftp', &quot;&gt;= #{Capistrano::Version::MINIMUM_SFTP_REQUIRED.join(&quot;.&quot;)}&quot;, &quot;&lt; #{Capistrano::Version::MINIMUM_SSH_REQUIRED.join('.')}&quot;
 
   s.author = &quot;Jamis Buck&quot;
   s.email = &quot;jamis@37signals.com&quot;</diff>
      <filename>capistrano.gemspec</filename>
    </modified>
    <modified>
      <diff>@@ -1,3 +1,9 @@
+begin
+  require 'rubygems'
+  gem 'net-ssh', '&lt; 1.99.0'
+rescue LoadError, NameError
+end
+
 require 'net/ssh'
 
 module Capistrano
@@ -5,8 +11,8 @@ module Capistrano
     require 'capistrano/version'
     require 'net/ssh/version'
     ssh_version = [Net::SSH::Version::MAJOR, Net::SSH::Version::MINOR, Net::SSH::Version::TINY]
-    if !Version.check(Version::SSH_REQUIRED, ssh_version)
-      raise &quot;You have Net::SSH #{ssh_version.join(&quot;.&quot;)}, but you need at least #{Version::SSH_REQUIRED.join(&quot;.&quot;)}&quot;
+    if !Version.check(ssh_version, Version::MINIMUM_SSH_REQUIRED, Version::MAXIMUM_SSH_REQUIRED)
+      raise &quot;You have Net::SSH #{ssh_version.join(&quot;.&quot;)}, but you need a version between #{Version::MINIMUM_SSH_REQUIRED.join(&quot;.&quot;)}...#{Version::MAXIMUM_SSH_REQUIRED.join(&quot;.&quot;)}&quot;
     end
   end
 </diff>
      <filename>lib/capistrano/ssh.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,11 +1,18 @@
 begin
   require 'capistrano/version'
+
+  begin
+    require 'rubygems'
+    gem 'net-sftp', '&lt; 1.99.0'
+  rescue LoadError, NameError
+  end
+
   require 'net/sftp'
   require 'net/sftp/version'
+
   sftp_version = [Net::SFTP::Version::MAJOR, Net::SFTP::Version::MINOR, Net::SFTP::Version::TINY]
-  required_version = [1,1,0]
-  if !Capistrano::Version.check(required_version, sftp_version)
-    warn &quot;You have Net::SFTP #{sftp_version.join(&quot;.&quot;)}, but you need at least #{required_version.join(&quot;.&quot;)}. Net::SFTP will not be used.&quot;
+  if !Capistrano::Version.check(sftp_version, Capistrano::Version::MINIMUM_SFTP_REQUIRED, Capistrano::Version::MAXIMUM_SFTP_REQUIRED)
+    warn &quot;You have Net::SFTP #{sftp_version.join(&quot;.&quot;)}, but you need between #{Capistrano::Version::MINIMUM_SFTP_REQUIRED.join('.')}...#{Capistrano::Version::MAXIMUM_SFTP_REQUIRED.join('.')}. Net::SFTP will not be used.&quot;
     Capistrano::SFTP = false
   else
     Capistrano::SFTP = true</diff>
      <filename>lib/capistrano/transfer.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,30 +1,26 @@
 module Capistrano
   module Version #:nodoc:
-    # A method for comparing versions of required modules. It expects two
-    # arrays as parameters, and returns true if the first is no more than the
-    # second.
-    def self.check(expected, actual) #:nodoc:
-      good = false
-      if actual[0] &gt; expected[0]
-        good = true
-      elsif actual[0] == expected[0]
-        if actual[1] &gt; expected[1]
-          good = true
-        elsif actual[1] == expected[1] &amp;&amp; actual[2] &gt;= expected[2]
-          good = true
-        end
-      end
-    
-      good
+    # A method for comparing versions of required modules. It expects
+    # arrays as parameters, and returns true if the first is no less than the
+    # second, and strictly less than the third.
+    def self.check(actual, minimum, maximum) #:nodoc:
+      actual = actual[0] * 1_000_000 + actual[1] * 1_000 + actual[2]
+      minimum = minimum[0] * 1_000_000 + minimum[1] * 1_000 + minimum[2]
+      maximum = maximum[0] * 1_000_000 + maximum[1] * 1_000 + maximum[2]
+
+      return actual &gt;= minimum &amp;&amp; actual &lt; maximum
     end
 
     MAJOR = 1
     MINOR = 4
-    TINY  = 1
+    TINY  = 2
 
     STRING = [MAJOR, MINOR, TINY].join(&quot;.&quot;)
     
-    SSH_REQUIRED = [1,0,10]
-    SFTP_REQUIRED = [1,1,0]
+    MINIMUM_SSH_REQUIRED  = [1,0,10]
+    MAXIMUM_SSH_REQUIRED  = [1,99,0]
+
+    MINIMUM_SFTP_REQUIRED = [1,1,0]
+    MAXIMUM_SFTP_REQUIRED = [1,99,0]
   end
 end</diff>
      <filename>lib/capistrano/version.rb</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>54cee940d2834f406d960d30193b8e442f55126a</id>
    </parent>
  </parents>
  <author>
    <name>Jamis Buck</name>
    <email>jamis@37signals.com</email>
  </author>
  <url>http://github.com/jamis/capistrano/commit/c746803b22c1117a76f79013b38fc0da15f1b2b4</url>
  <id>c746803b22c1117a76f79013b38fc0da15f1b2b4</id>
  <committed-date>2008-04-28T09:46:13-07:00</committed-date>
  <authored-date>2008-04-28T09:46:13-07:00</authored-date>
  <message>Add an explicit dependency on net-ssh and net-sftp &lt; 1.99.0</message>
  <tree>1a5b8f22a8ac15d23859e5fa025cb8c01a70746e</tree>
  <committer>
    <name>Jamis Buck</name>
    <email>jamis@37signals.com</email>
  </committer>
</commit>
