gitoxide
gitoxide copied to clipboard
non-bare clone (with worktrees)
Clone an entire repository via gix repository clone
and checkout a working tree along with a valid index.
Tasks
-
git-odb
- [x] all docs, sans examples
- [x] Rename pack data/pack index
Kind
toVersion
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
- [x] split
Id
and everything hash related intogit-hash
- [x] use
git-hash
inside ofgit-features
, remove cycle
- [x] split
-
git-config
- [x] Thanks to a generous contribution it's mostly done and well on the way
- [x] Push it towards 1.0
- [x]
Config
type which integrates multiple files into one interface, much like a multi version ofFile
- [x] Make
gix organize
usegit-config
on single files (the repository configuration) - [x] #191
-
git-ref
- [x] transactional creation of refs
- [x] iteration of refs
-
git-index
- [x] Read an index (complete with all extensions)
- [x] Create an index from tree (see #293 for more)
- [x] Write index, after it was checked out and contains the latest stat information
-
git-bitmap
- [x] pieces needed for git-index to work.
-
git-worktree
- [x] checkout an index (files and symlinks) (See #301 for more)
- [x] apply builtin filters
- [x] apply external filters (one-shot and long-running)
- [x] handle submodules
-
git-transport
- support
git remote-<protocol>
programs (somehow, let's just be aware, but also be careful about theext
remote helper which executes arbitrary programs)
- support
-
gix repository clone
- [x] 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.
- [x] otherwise create the scaffolding needed for a new repository, probably based on
init
implementation.- double-check with repository layout.
- [x] 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.
-
gix pack receive
- [x] resolve thin pack
-
gix
- [x] instance for a valid looking repository
- [x] support shallow repos/references (see also the tracking issue #450)
- [x] create-update refs as received from clone/git-receive-pack safely (i.e. with required locking)
- [x] clone from https remote via
remote
abstraction - [x] switch from
naive
toconsecutive
implementation (or else fetches fail from some servers)
- [x] instance for a valid looking repository
-
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.
- 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
- [ ] #449
- [ ] A GitHub Action to accelerate checkouts on CI.