Skip to content

Tracking Issue for -Zgitoxide #11813

Open
@Byron

Description

@Byron

Summary

RFC: None
Documentation: https://doc.rust-lang.org/nightly/cargo/reference/unstable.html#gitoxide
Issues: Z-gitoxide Nightly: gitoxide integration
Original issue:

With the ‘gitoxide’ unstable feature, all of the specified git operations will be performed by the gitoxide crate instead of git2. This allows git2 to be replaced in full.

Steps

Unstable feature sub-categories:

Further tasks

  • short-hash handling can be done by gix_hash::Prefix.
  • optimize dependencies to only include those that cargo actually uses.
  • When specifying a dependency with rev but nothing found, cargo with shallow fetch should fetch full history as a fallback.

Unresolved Issues

  • work with https://rsproxy.cn (the proxy seems to work different making naive negotiations fail due to multi-round negotiation)
  • all features as listed in this gitoxide tracking issue to be able to replace git2 in full
  • support for the file:// protocol without relying on the git binary
  • support of the ssh:// protocol without relying on the ssh binary
  • double-check and validate that authentication works similarly to git2 or if unfeasible, assure users have a migration path. How to deal with this correctly is still to be determined.
  • transitive dependency tempfile is pinned to ~3.3.0 temporarily (see [email protected])
  • A-git Area: anything dealing with git might contain more potential blockers
    • take a look at all of these and either fix them, resolve them, or store them in gitoxide itself

Future Extensions

Some features not in libgit2 are good candidates for future extensions

About tracking issues

Tracking issues are used to record the overall progress of implementation.
They are also used as hubs connecting to other relevant issues, e.g., bugs or open design questions.
A tracking issue is however not meant for large scale discussion, questions, or bug reports about a feature.
Instead, open a dedicated issue for the specific matter and add the relevant feature gate label.

Implementation history

Metadata

Metadata

Assignees

No one assigned

    Labels

    C-tracking-issueCategory: A tracking issue for something unstable.S-waiting-on-feedbackStatus: An implemented feature is waiting on community feedback for bugs or design concerns.Z-gitoxideNightly: gitoxide integration

    Type

    No type

    Projects

    Status

    In Progress

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions