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

Fixes and Improvements #949

Merged
merged 11 commits into from
Aug 2, 2023
Merged

Fixes and Improvements #949

merged 11 commits into from
Aug 2, 2023

Conversation

Byron
Copy link
Member

@Byron Byron commented Jul 26, 2023

Tasks

@Byron Byron changed the title improve reqwest error handling (#923) Fixes and Improvements Jul 26, 2023
Previously it was possible for reqwest to fail and cause a panic.
Now the actual error will be returned to the original caller.
Further, we update internal logic to decide when to write a reflog
for symrefs. Now we will always do it when possible, i.e. there is
object ids available.
This allows symbolic refs to be parsed which are in fact pointing
to an annotated tag as in-between object.
…ogical consistency.

Previously, refspecs couldn't be used to update sybolic references locally, particularly because the logic
to do so correctly isn't trivial and `git` itself also seems to cover only the most common cases.

However, the logic now changed so that remote updates will only be rejected if

* fast-forward rules are violated
* the local ref is currently checked out
* existing refs would not become 'unborn', i.e. point to a reference that doesn't exist and won't be created due to ref-specs

This makes it possible to update unborn remote refs to local refs if these are new or unborn themselves.
This also allows to create mirrors more easily and allows us to handle `HEAD` without special casing it.
Bare repositories have an easier time to update local symbolic refs.
Negative date offsets seem to occour with double-dashes, too.
…mall packs.

When fetching, currently each of these creates a possibly small pack.
We can tackle this in many areas, so ideally there is a best algorithm
for this, maybe it is indeed just recency, or there is a selection.
Have to figure that out.

Further, small packs should be exploded, using `fetch.unpackLimit`.
…ns of arguments that are supposed to be features.

This differentiation is important to support V1 and V2 correctly, which have a different notion of features with V1
special-casing them, and V2 just sees everything as arguments.
@Byron Byron merged commit f8b1f55 into main Aug 2, 2023
16 checks passed
@Byron Byron deleted the fixes-and-improvements branch August 2, 2023 15:20
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