Unified · Split
| @@ -31,7 +31,7 @@ echo "in root: gitoxide CLI" · 30 unmodified lines | ||
| 31 | 31 | (enter git-lock && indent cargo diet -n --package-size-limit 20KB) |
| 32 | 32 | (enter git-config && indent cargo diet -n --package-size-limit 120KB) |
| 33 | 33 | (enter git-config-value && indent cargo diet -n --package-size-limit 20KB) |
| 34 | −(enter git-command && indent cargo diet -n --package-size-limit 5KB) | |
| 34 | +(enter git-command && indent cargo diet -n --package-size-limit 10KB) | |
| 35 | 35 | (enter git-hash && indent cargo diet -n --package-size-limit 30KB) |
| 36 | 36 | (enter git-chunk && indent cargo diet -n --package-size-limit 10KB) |
| 37 | 37 | (enter git-rebase && indent cargo diet -n --package-size-limit 5KB) |
| @@ -59,5 +59,5 @@ echo "in root: gitoxide CLI" · 21 unmodified lines | ||
| 59 | 59 | (enter git-protocol && indent cargo diet -n --package-size-limit 80KB) |
| 60 | 60 | (enter git-packetline && indent cargo diet -n --package-size-limit 35KB) |
| 61 | 61 | (enter git-repository && indent cargo diet -n --package-size-limit 250KB) |
| 62 | −(enter git-transport && indent cargo diet -n --package-size-limit 75KB) | |
| 62 | +(enter git-transport && indent cargo diet -n --package-size-limit 80KB) | |
| 63 | 63 | (enter gitoxide-core && indent cargo diet -n --package-size-limit 100KB) |
| @@ -83,6 +83,7 @@ impl<'repo> Remote<'repo> { · 82 unmodified lines | ||
| 83 | 83 | P: Progress, |
| 84 | 84 | { |
| 85 | 85 | let (url, version) = self.sanitized_url_and_version(direction)?; |
| 86 | + #[cfg(feature = "blocking-network-client")] | |
| 86 | 87 | let scheme_is_ssh = url.scheme == git_url::Scheme::Ssh; |
| 87 | 88 | let transport = git_protocol::transport::connect( |
| 88 | 89 | url, |
| @@ -38,11 +38,14 @@ mod ssh_options { · 37 unmodified lines | ||
| 38 | 38 | #[cfg(any(feature = "blocking-network-client", feature = "async-network-client"))] |
| 39 | 39 | mod transport_options; |
| 40 | 40 | |
| 41 | +#[cfg(feature = "blocking-network-client")] | |
| 41 | 42 | use git_repository as git; |
| 43 | +#[cfg(feature = "blocking-network-client")] | |
| 42 | 44 | pub fn repo(name: &str) -> git::Repository { |
| 43 | 45 | repo_opts(name, |opts| opts.strict_config(true)) |
| 44 | 46 | } |
| 45 | 47 | |
| 48 | +#[cfg(feature = "blocking-network-client")] | |
| 46 | 49 | pub fn repo_opts(name: &str, modify: impl FnOnce(git::open::Options) -> git::open::Options) -> git::Repository { |
| 47 | 50 | let dir = git_testtools::scripted_fixture_read_only("make_config_repos.sh").unwrap(); |
| 48 | 51 | git::open_opts(dir.join(name), modify(git::open::Options::isolated())).unwrap() |
| @@ -161,7 +161,13 @@ mod blocking_io { · 160 unmodified lines | ||
| 161 | 161 | P: Progress, |
| 162 | 162 | P::SubProgress: 'static, |
| 163 | 163 | { |
| 164 | − let transport = net::connect(url, protocol.unwrap_or_default().into())?; | |
| 164 | + let transport = net::connect( | |
| 165 | + url, | |
| 166 | + git::protocol::transport::client::connect::Options { | |
| 167 | + version: protocol.unwrap_or_default().into(), | |
| 168 | + ..Default::default() | |
| 169 | + }, | |
| 170 | + )?; | |
| 165 | 171 | let delegate = CloneDelegate { |
| 166 | 172 | ctx, |
| 167 | 173 | directory, |
| @@ -236,7 +242,14 @@ mod async_io { · 68 unmodified lines | ||
| 236 | 242 | P: Progress + 'static, |
| 237 | 243 | W: io::Write + Send + 'static, |
| 238 | 244 | { |
| 239 | − let transport = net::connect(url.to_string(), protocol.unwrap_or_default().into()).await?; | |
| 245 | + let transport = net::connect( | |
| 246 | + url, | |
| 247 | + git::protocol::transport::client::connect::Options { | |
| 248 | + version: protocol.unwrap_or_default().into(), | |
| 249 | + ..Default::default() | |
| 250 | + }, | |
| 251 | + ) | |
| 252 | + .await?; | |
| 240 | 253 | let mut delegate = CloneDelegate { |
| 241 | 254 | ctx, |
| 242 | 255 | directory, |
| @@ -97,11 +97,11 @@ static GIT_CONFIG: &[Record] = &[ · 96 unmodified lines | ||
| 97 | 97 | }, |
| 98 | 98 | Record { |
| 99 | 99 | config: "core.sshCommand", |
| 100 | − usage: Planned { note: Some("unclear right now how to configure it, needs adjustment on Command based transport, must be lazy then making `connect()` a no-op essentially.") }, | |
| 100 | + usage: InModule { name: "repository::config", deviation: None } | |
| 101 | 101 | }, |
| 102 | 102 | Record { |
| 103 | 103 | config: "ssh.variant", |
| 104 | − usage: Planned { note: Some("another way to select which ssh program to use, but formalizing it to choose correct arguments. Based on the basename otherwise. Detection is attempted otherwise with `-G`") }, | |
| 104 | + usage: InModule { name: "repository::config", deviation: Some("We error if a variant is chosen that we don't know, as opposed to defaulting to 'ssh'") } | |
| 105 | 105 | }, |
| 106 | 106 | Record { |
| 107 | 107 | config: "core.fileMode", |
| @@ -884,6 +884,13 @@ static GIT_CONFIG: &[Record] = &[ · 776 unmodified lines | ||
| 884 | 884 | deviation: Some("corresponds to the EMAIL environment variable and is a fallback for `user.email`") |
| 885 | 885 | } |
| 886 | 886 | }, |
| 887 | + Record { | |
| 888 | + config: "gitoxide.ssh.commandWithoutShellFallback", | |
| 889 | + usage: InModule { | |
| 890 | + name: "repository::config", | |
| 891 | + deviation: Some("Corresponds to the value of `GIT_SSH` and is always executed without shell and treated as fallback.") | |
| 892 | + } | |
| 893 | + }, | |
| 887 | 894 | Record { |
| 888 | 895 | config: "gitoxide.objects.cacheLimit", |
| 889 | 896 | usage: InModule { |