-
-
Notifications
You must be signed in to change notification settings - Fork 477
gitoxide in cargo #106
Copy link
Copy link
Open
Labels
C-integrate-gitoxide"Oxidize" crates even more by replacing git2 with gitoxide"Oxidize" crates even more by replacing git2 with gitoxide
Metadata
Metadata
Assignees
Labels
C-integrate-gitoxide"Oxidize" crates even more by replacing git2 with gitoxide"Oxidize" crates even more by replacing git2 with gitoxide
Type
Fields
Give feedbackNo fields configured for issues without a type.
This is a fun research project to potentially drive feature development one day to allow replacing git2 with gitoxide.
In order to migrate, not all features would have to be present at first at the cost of compiling both gitoxide and git2 (Something which probably should be avoided).
Features used
PathBuftogix_fs::RelativePath(RepoRelative) with slashesRepository::excludes()worktreeandsubmoduleAPIs are similar.git status(requires index comparison with working tree and head to index)fileprotocol #734git, and it's about reducing the amount of pack files which we can already do pretty well I think, and loose objects could be included in the pack as well (even though undeltified)fetch.unpackLimitto keep repositories clean (cargoruns gc occasionally as well)git2::Cred::default())gitoxidemust build (and be tested on) 32 bit systemsShortcomings of
gitoxidein comparison togit2gitbinary forfile://protocol due to lack of nativeupload-packfunctionality. Remedy is planned with Rust Foundation grant (stretch goal)sshbinary forsshconnectionNote that replacing clone/fetch related features is tracked in #449 .
Related
cargo publishproduces "X files in the working directory contain changes that were not yet committed into git" for .gitignored files rust-lang/cargo#16540Locations and purpose
cd cargo && rg git2:: -lPotential issues