Module: Command::ReceiveObjects

Included in:
Fetch, ReceivePack
Defined in:
lib/command/shared/receive_objects.rb

Constant Summary collapse

UNPACK_LIMIT =
100

Instance Method Summary collapse

Instance Method Details

#recv_packed_objects(unpack_limit = nil, prefix = "") ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
20
# File 'lib/command/shared/receive_objects.rb', line 9

def recv_packed_objects(unpack_limit = nil, prefix = "")
  stream   = Pack::Stream.new(@conn.input, prefix)
  reader   = Pack::Reader.new(stream)
  progress = Progress.new(@stderr) unless @conn.input == STDIN

  reader.read_header

  factory   = select_processor_class(reader, unpack_limit)
  processor = factory.new(repo.database, reader, stream, progress)

  processor.process_pack
end

#select_processor_class(reader, unpack_limit) ⇒ Object



22
23
24
25
26
27
28
29
30
# File 'lib/command/shared/receive_objects.rb', line 22

def select_processor_class(reader, unpack_limit)
  unpack_limit ||= transfer_unpack_limit

  if unpack_limit and reader.count > unpack_limit
    Pack::Indexer
  else
    Pack::Unpacker
  end
end

#transfer_unpack_limitObject



32
33
34
# File 'lib/command/shared/receive_objects.rb', line 32

def transfer_unpack_limit
  repo.config.get(["transfer", "unpackLimit"]) || UNPACK_LIMIT
end