Skip to content

non-bare clone (with worktrees) #303

Open
@Byron

Description

@Byron

Clone an entire repository via gix repository clone and checkout a working tree along with a valid index.

Tasks

  • git-odb
    • all docs, sans examples
    • Rename pack data/pack index Kind to Version or similar, because that's what it really is.
    • add a test to see what happens if there are a lot of small backs but limits in the amount of open handles. If we handle this gracefully, good, otherwise, add a way to auto-explode small packs which should be free thanks to the resolution phase.
  • git-object refactor
    • split Id and everything hash related into git-hash
    • use git-hash inside of git-features, remove cycle
  • git-config
    • Thanks to a generous contribution it's mostly done and well on the way
    • Push it towards 1.0
    • Config type which integrates multiple files into one interface, much like a multi version of File
    • Make gix organize use git-config on single files (the repository configuration)
    • git-config towards 1.0 #191
  • git-ref
    • transactional creation of refs
    • iteration of refs
  • git-index
    • Read an index (complete with all extensions)
    • Create an index from tree (see gix-index towards 1.0 #293 for more)
    • Write index, after it was checked out and contains the latest stat information
  • git-bitmap
    • pieces needed for git-index to work.
  • git-worktree
  • git-transport
    • support git remote-<protocol> programs (somehow, let's just be aware, but also be careful about the ext remote helper which executes arbitrary programs)
  • gix repository clone
    • try initializing repo on output path - if so, use that to learn about pack location and place new pack there, allow Repo to create refs somehow.
      • probably this is done using the repository itself, which steers the whole process and injects it's own delegates.
    • otherwise create the scaffolding needed for a new repository, probably based on init implementation.
  • gix pack receive
    • resolve thin pack
  • gix
    • instance for a valid looking repository
    • create-update refs as received from clone/git-receive-pack safely (i.e. with required locking)
    • clone from https remote via remote abstraction
    • switch from naive to consecutive implementation (or else fetches fail from some servers)
  • Having impact
    • A GitHub Action to accelerate checkouts on CI.
      • Note that this assumption should be validated first - after all we need to download a binary first and then get that time back at the very least. For small repositories this might not be worth it, but then again, folks who think they benefit from gitoxide won't have small repositories.
      • consider having a docker action as fallback in case some platforms don't have a binary pre-built yet.
    • [integration] Shallow clones for cargo #449

Metadata

Metadata

Assignees

No one assigned

    Labels

    C-tracking-issueAn issue to track to track the progress of multiple PRs or issues

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions