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

non-bare clone (with worktrees) #303

Open
27 of 30 tasks
Tracked by #449
Byron opened this issue Jan 22, 2022 · 0 comments
Open
27 of 30 tasks
Tracked by #449

non-bare clone (with worktrees) #303

Byron opened this issue Jan 22, 2022 · 0 comments
Labels
C-tracking-issue An issue to track to track the progress of multiple PRs or issues

Comments

@Byron
Copy link
Member

Byron commented Jan 22, 2022

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
@Byron Byron added the C-tracking-issue An issue to track to track the progress of multiple PRs or issues label Jan 22, 2022
@Byron Byron changed the title non-bare clone non-bare clone (with worktrees) Oct 10, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
C-tracking-issue An issue to track to track the progress of multiple PRs or issues
Projects
None yet
Development

No branches or pull requests

1 participant