-
Notifications
You must be signed in to change notification settings - Fork 435
[WIP] feat: unstable SHA256 support #1206
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
Draft
weihanglo
wants to merge
10
commits into
rust-lang:master
Choose a base branch
from
weihanglo:sha256-git2
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Draft
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
* GIT_SHA1_COLLISIONDETECT -> GIT_SHA1_BUILTIN * GIT_WINHTTP -> GIT_HTTPS_WINHTTP * GIT_SECURE_TRANSPORT -> GIT_HTTPS_SECURETRANSPORT * GIT_OPENSSL -> GIT_HTTPS_OPENSSL See <libgit2/libgit2#6994>
3fc5ab5 to
a0f7252
Compare
* Add `GIT_REPOSITORY_INIT_RELATIVE_GITLINK` at libgit2/libgit2@bc737620d * Remove `GIT_REPOSITORY_INIT_NO_DOTGIT_DIR` at libgit2/libgit2@ca2a241e4
* Remove `GIT_OBJECT_OFS_DELTA` * Remove `GIT_OBJECT_REF_DELTA` See libgit2/libgit2@23da3a8f3
libgit2 simplified SHA256 API to use `_ext` suffixes instead of changing base function signatures. This avoids breaking changes for users who don't need SHA256 support. Updated bindings: - git_oid_from_raw - git_oid_from_prefix - git_oid_from_string - git_diff_from_buffer_ext - git_index_new_ext - git_index_open_ext - git_odb_new_ext - git_odb_open_ext - git_repository_new_ext See libgit2/libgit2@56e2a85643f (libgit2/libgit2#6975)
a0f7252 to
dd35da4
Compare
This adds an `unstable-sha256` Cargo feature, as a follow-up of rust-lang#1201 Also adds some smoke tests for affected operations/types. ## Insta-stable * **NEW** `Index::with_object_format` to create with different format ## Behind `unstable-sha256 * **NEW** `ObjectFormat` enum with variants `Sha1` and `Sha256` * **NEW** `RepositoryInitOptions::object_format()` method to set hash algo * **NEW** `Remote::object_format` method to get hash algo on a remote * **CHANGED** `Diff::from_buffer` to accept a extra object format argument * **CHANGED** `Index::open` to accept a extra object format argument * **CHANGED** `Indexer::new` to accept a extra object format argument * **CHANGED** `Oid::from_str` to accept a extra object format argument * **CHANGED** `Oid::hash_{object,file}` to accept a extra object format argument * **REMOVED** `Index::new` to avoid misuse. * **REMOVED** `impl std::FromStr for Oid` to avoid misuse
This also run systest first, so we can dicover bindding mismatch before
dd35da4 to
a332c64
Compare
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This adds an
unstable-sha256Cargo feature, as a follow-up of #1201.Also adds some smoke tests for affected operations/types.
Part of #1090
Insta-stable
Index::with_object_formatto create with different formatBehind
unstable-sha256ObjectFormat::Sha256enum variantRepositoryInitOptions::object_format()method to set hash algoRemote::object_formatmethod to get hash algo on a remoteDiff::from_bufferto accept an extra object format argumentIndex::opento accept an extra object format argumentIndexer::newto accept an extra object format argumentOid::from_strto accept an extra object format argumentOid::hash_{object,file}to accept an extra object format argumentIndex::newto avoid misuse.impl std::FromStr for Oidto avoid misuselibgit2 1.9 compatibility changes
This PR also includes fixes for libgit2 1.9 breaking changes:
GIT_SHA1_COLLISIONDETECT->GIT_SHA1_BUILTIN, HTTPS backend macros)refdb_typefield togit_repository_init_optionsSee libgit2/libgit2#6994 and libgit2/libgit2#7102 for upstream changes.
These changes can be split out if needed.