ExGitEngine.WireProtocol.UploadPack (ex_git_engine v0.9.1)

Copy Markdown

Module implementing the git-upload-pack command.

Summary

Functions

Transitions handle from :disco to new_state, building advertised_caps from no_done.

Splits a pack binary into {:sideband_pack, 1, chunk} tuples sized at most chunk_size bytes.

Types

t()

@type t() :: %ExGitEngine.WireProtocol.UploadPack{
  advertised_caps: [binary()],
  agent: ExGitEngine.GitAgent.agent(),
  caps: [binary()],
  haves: [ExGitEngine.Git.oid()],
  no_done: boolean(),
  state: :disco | :upload_req | :upload_haves | :pack | :done,
  wants: [ExGitEngine.Git.oid()]
}

Functions

ack_haves(haves, caps)

disco_transition_state(handle, new_state)

Transitions handle from :disco to new_state, building advertised_caps from no_done.

pack_to_sideband_frames(pack, chunk_size)

Splits a pack binary into {:sideband_pack, 1, chunk} tuples sized at most chunk_size bytes.