def exchange_pack(headers, io_in, opts = {})
      Rack::Response.new([], 200, headers).finish do |response|
        git.handle_pack(pack_type, io_in, response, opts)
      end
    end
def exchange_pack(headers, io_in, opts = {})
      Rack::Response.new([], 200, headers).finish do |response|
        git.handle_pack(pack_type, io_in, response, opts)
      end
    end
Opens a tunnel for the pack file exchange protocol between the client and
 the Git adapter.

 @param [Hash] headers headers to provide in the Rack response.
 @param [#read] io_in a readable, IO-like object providing client input
   data.
 @param [Hash] opts options to pass to the Git adapter's #handle_pack
   method.

 @return a Rack response object.