git-protocol: git protocol notes, for developers

git-protocolR Documentation

git protocol notes, for developers

Description

Assumptions, they might be relaxed or checked for later:

  • The server must speak the smart protocol, version 1 or 2. (Although I added some functions specifically for the dumb protocol, but they are pretty limited.)

  • We use HTTP transport, not SSH.

  • The server should have the shallow capability.

  • The server should have the filter capability if protocol version 2.

  • Only SHA-1 hashing is supported.

Details

Improvements needed:

  • DONE Tests. (Can always have more.)

  • DONE Use async HTTP.

  • DONE Support packfiles with deltas. (ofs-delta objects are still not supported.)

  • DONE Optionally send authorization. Already possibly in the URL.

  • DONE Better error messages.

  • Better errors for non-existing user, repository, ref, PR, etc.

Optional improvements:

  • Support ofs-delta objects in packfiles. Not necessarily, unless we send this capability, the server is not sending ofs-delta objects.

  • Make unpacking faster. It is not fast currently, with all the bit arithmetic in R. But it is already faster than a tar.gz + uncompress download from GitHub, so not really needed.

Docs and other helpful links:


pkgdepends documentation built on Nov. 10, 2023, 5:06 p.m.