From ac9e0b39f2d217f1c40a7e536e15009b21423610 Mon Sep 17 00:00:00 2001 From: Sebastian Thiel Date: Mon, 20 Feb 2023 16:48:13 +0100 Subject: upgrade `git-repository` to `gix` 0.36.1; up min. rustc version to 1.64 This fixes breakage when installing `helix` due to an incorrect usage of `as_ref()` when interacting with `bstr` in the `gitoxide` codebase. However, this upgrade also requires a higher rustc version, as `gitoxide` recently updated its `windows` crate version. --- helix-vcs/Cargo.toml | 4 ++-- helix-vcs/src/git.rs | 21 ++++++++++----------- 2 files changed, 12 insertions(+), 13 deletions(-) (limited to 'helix-vcs') diff --git a/helix-vcs/Cargo.toml b/helix-vcs/Cargo.toml index c4d6eb45..ad8005d1 100644 --- a/helix-vcs/Cargo.toml +++ b/helix-vcs/Cargo.toml @@ -16,13 +16,13 @@ helix-core = { version = "0.6", path = "../helix-core" } tokio = { version = "1", features = ["rt", "rt-multi-thread", "time", "sync", "parking_lot", "macros"] } parking_lot = "0.12" -git-repository = { version = "0.32", default-features = false , optional = true } +gix= { version = "0.36.1", default-features = false , optional = true } imara-diff = "0.1.5" log = "0.4" [features] -git = ["git-repository"] +git = ["gix"] [dev-dependencies] tempfile = "3.4" \ No newline at end of file diff --git a/helix-vcs/src/git.rs b/helix-vcs/src/git.rs index 432159b6..2a540c8d 100644 --- a/helix-vcs/src/git.rs +++ b/helix-vcs/src/git.rs @@ -1,9 +1,8 @@ use std::path::Path; -use git::objs::tree::EntryMode; -use git::sec::trust::DefaultForLevel; -use git::{Commit, ObjectId, Repository, ThreadSafeRepository}; -use git_repository as git; +use gix::objs::tree::EntryMode; +use gix::sec::trust::DefaultForLevel; +use gix::{Commit, ObjectId, Repository, ThreadSafeRepository}; use crate::DiffProvider; @@ -15,13 +14,13 @@ pub struct Git; impl Git { fn open_repo(path: &Path, ceiling_dir: Option<&Path>) -> Option { // custom open options - let mut git_open_opts_map = git::sec::trust::Mapping::::default(); + let mut git_open_opts_map = gix::sec::trust::Mapping::::default(); // On windows various configuration options are bundled as part of the installations // This path depends on the install location of git and therefore requires some overhead to lookup // This is basically only used on windows and has some overhead hence it's disabled on other platforms. // `gitoxide` doesn't use this as default - let config = git::permissions::Config { + let config = gix::permissions::Config { system: true, git: true, user: true, @@ -30,16 +29,16 @@ impl Git { git_binary: cfg!(windows), }; // change options for config permissions without touching anything else - git_open_opts_map.reduced = git_open_opts_map.reduced.permissions(git::Permissions { + git_open_opts_map.reduced = git_open_opts_map.reduced.permissions(gix::Permissions { config, - ..git::Permissions::default_for_level(git::sec::Trust::Reduced) + ..gix::Permissions::default_for_level(gix::sec::Trust::Reduced) }); - git_open_opts_map.full = git_open_opts_map.full.permissions(git::Permissions { + git_open_opts_map.full = git_open_opts_map.full.permissions(gix::Permissions { config, - ..git::Permissions::default_for_level(git::sec::Trust::Full) + ..gix::Permissions::default_for_level(gix::sec::Trust::Full) }); - let mut open_options = git::discover::upwards::Options::default(); + let mut open_options = gix::discover::upwards::Options::default(); if let Some(ceiling_dir) = ceiling_dir { open_options.ceiling_dirs = vec![ceiling_dir.to_owned()]; } -- cgit v1.2.3-70-g09d2