Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

shallow protocol #770

Merged
merged 9 commits into from
Mar 11, 2023
Merged

shallow protocol #770

merged 9 commits into from
Mar 11, 2023

Conversation

Byron
Copy link
Member

@Byron Byron commented Mar 7, 2023

Initial support for shallow clones on the protocol layer.

Tasks

  • plan for protocol related configuration like clone.rejectShallow, receive.shallowUpdate
  • validate Arguments implementation can send shallow information correctly
  • shallow clone from non-shallow remote
  • reject shallow clones from shallow remote based on clone.rejectShallow
  • auto-shallow clone from shallow remote
  • 'unshallow' a shallow clone (handle unshallow on complete repos)
  • repeated clones while maintaining shallow boundary
  • integration into gix to allow it to be configured.

@Byron Byron mentioned this pull request Mar 7, 2023
27 tasks
@Byron Byron force-pushed the shallow-protocol branch 5 times, most recently from 6ea6700 to a74b349 Compare March 10, 2023 06:40
…ent readline behaviour.

Previously the `async` version of the transport implementation would use the default `read_line` implementation
which would search for newlines in packetlines. However, these aren't always emitted which could lead to
multiple packetlines to be concatenated.

Now the we always use our implementation which simply treats one packet line as line, no matter whether
or not it ends with optional newline.
Also improve documentation for `FullName*` and `PartialName*` types.
That way can be sure the all capabilities are working like we think they do.
Also, we remove the existing blocking `read_line()` override as it's not
representable in the async implementation anyway, to unify both implementations
once again.

The new name also makes sure that we are not accidentally calling a built-in
implementation on the `BufRead` trait as it's clear our method has to be called
under a different name.
…n for `Box<T: ReadlineBufRead>` as well.

This fixes a bug where the HTTP implementation would incorrectly concatenate packetlines without newlines
as sent by the server for shallow info lines.
@Byron Byron force-pushed the shallow-protocol branch 2 times, most recently from 086c5a1 to 30aec54 Compare March 10, 2023 15:50
@Byron Byron merged commit 531dd19 into main Mar 11, 2023
@Byron Byron deleted the shallow-protocol branch April 19, 2023 12:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant