Unified · Split
| @@ -31,7 +31,7 @@ echo "in root: gitoxide CLI" · 30 unmodified lines | |||
| 31 | (enter git-lock && indent cargo diet -n --package-size-limit 20KB) | 31 | (enter git-lock && indent cargo diet -n --package-size-limit 20KB) |
| 32 | (enter git-config && indent cargo diet -n --package-size-limit 120KB) | 32 | (enter git-config && indent cargo diet -n --package-size-limit 120KB) |
| 33 | (enter git-config-value && indent cargo diet -n --package-size-limit 20KB) | 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 | (enter git-hash && indent cargo diet -n --package-size-limit 30KB) | 35 | (enter git-hash && indent cargo diet -n --package-size-limit 30KB) |
| 36 | (enter git-chunk && indent cargo diet -n --package-size-limit 10KB) | 36 | (enter git-chunk && indent cargo diet -n --package-size-limit 10KB) |
| 37 | (enter git-rebase && indent cargo diet -n --package-size-limit 5KB) | 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 | (enter git-protocol && indent cargo diet -n --package-size-limit 80KB) | 59 | (enter git-protocol && indent cargo diet -n --package-size-limit 80KB) |
| 60 | (enter git-packetline && indent cargo diet -n --package-size-limit 35KB) | 60 | (enter git-packetline && indent cargo diet -n --package-size-limit 35KB) |
| 61 | (enter git-repository && indent cargo diet -n --package-size-limit 250KB) | 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 | (enter gitoxide-core && indent cargo diet -n --package-size-limit 100KB) | 63 | (enter gitoxide-core && indent cargo diet -n --package-size-limit 100KB) |
| @@ -83,6 +83,7 @@ impl<'repo> Remote<'repo> { · 82 unmodified lines | |||
| 83 | P: Progress, | 83 | P: Progress, |
| 84 | { | 84 | { |
| 85 | let (url, version) = self.sanitized_url_and_version(direction)?; | 85 | let (url, version) = self.sanitized_url_and_version(direction)?; |
| 86 | #[cfg(feature = "blocking-network-client")] | ||
| 86 | let scheme_is_ssh = url.scheme == git_url::Scheme::Ssh; | 87 | let scheme_is_ssh = url.scheme == git_url::Scheme::Ssh; |
| 87 | let transport = git_protocol::transport::connect( | 88 | let transport = git_protocol::transport::connect( |
| 88 | url, | 89 | url, |
| @@ -38,11 +38,14 @@ mod ssh_options { · 37 unmodified lines | |||
| 38 | #[cfg(any(feature = "blocking-network-client", feature = "async-network-client"))] | 38 | #[cfg(any(feature = "blocking-network-client", feature = "async-network-client"))] |
| 39 | mod transport_options; | 39 | mod transport_options; |
| 40 | 40 | ||
| 41 | #[cfg(feature = "blocking-network-client")] | ||
| 41 | use git_repository as git; | 42 | use git_repository as git; |
| 43 | #[cfg(feature = "blocking-network-client")] | ||
| 42 | pub fn repo(name: &str) -> git::Repository { | 44 | pub fn repo(name: &str) -> git::Repository { |
| 43 | repo_opts(name, |opts| opts.strict_config(true)) | 45 | repo_opts(name, |opts| opts.strict_config(true)) |
| 44 | } | 46 | } |
| 45 | 47 | ||
| 48 | #[cfg(feature = "blocking-network-client")] | ||
| 46 | pub fn repo_opts(name: &str, modify: impl FnOnce(git::open::Options) -> git::open::Options) -> git::Repository { | 49 | pub fn repo_opts(name: &str, modify: impl FnOnce(git::open::Options) -> git::open::Options) -> git::Repository { |
| 47 | let dir = git_testtools::scripted_fixture_read_only("make_config_repos.sh").unwrap(); | 50 | let dir = git_testtools::scripted_fixture_read_only("make_config_repos.sh").unwrap(); |
| 48 | git::open_opts(dir.join(name), modify(git::open::Options::isolated())).unwrap() | 51 | git::open_opts(dir.join(name), modify(git::open::Options::isolated())).unwrap() |
| @@ -161,7 +161,13 @@ mod blocking_io { · 160 unmodified lines | |||
| 161 | P: Progress, | 161 | P: Progress, |
| 162 | P::SubProgress: 'static, | 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 | let delegate = CloneDelegate { | 171 | let delegate = CloneDelegate { |
| 166 | ctx, | 172 | ctx, |
| 167 | directory, | 173 | directory, |
| @@ -236,7 +242,14 @@ mod async_io { · 68 unmodified lines | |||
| 236 | P: Progress + 'static, | 242 | P: Progress + 'static, |
| 237 | W: io::Write + Send + 'static, | 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 | let mut delegate = CloneDelegate { | 253 | let mut delegate = CloneDelegate { |
| 241 | ctx, | 254 | ctx, |
| 242 | directory, | 255 | directory, |
| @@ -97,11 +97,11 @@ static GIT_CONFIG: &[Record] = &[ · 96 unmodified lines | |||
| 97 | }, | 97 | }, |
| 98 | Record { | 98 | Record { |
| 99 | config: "core.sshCommand", | 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 | Record { | 102 | Record { |
| 103 | config: "ssh.variant", | 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 | Record { | 106 | Record { |
| 107 | config: "core.fileMode", | 107 | config: "core.fileMode", |
| @@ -884,6 +884,13 @@ static GIT_CONFIG: &[Record] = &[ · 776 unmodified lines | |||
| 884 | deviation: Some("corresponds to the EMAIL environment variable and is a fallback for `user.email`") | 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 | Record { | 894 | Record { |
| 888 | config: "gitoxide.objects.cacheLimit", | 895 | config: "gitoxide.objects.cacheLimit", |
| 889 | usage: InModule { | 896 | usage: InModule { |