ssh remoting: Expand tilde on host side (#18333)
This commit is contained in:
parent
4e2ae06ca6
commit
ccc871c44c
2 changed files with 11 additions and 3 deletions
|
@ -221,10 +221,11 @@ impl WorktreeStore {
|
||||||
) -> Task<Result<Model<Worktree>, Arc<anyhow::Error>>> {
|
) -> Task<Result<Model<Worktree>, Arc<anyhow::Error>>> {
|
||||||
let mut abs_path = abs_path.as_ref().to_string_lossy().to_string();
|
let mut abs_path = abs_path.as_ref().to_string_lossy().to_string();
|
||||||
// If we start with `/~` that means the ssh path was something like `ssh://user@host/~/home-dir-folder/`
|
// If we start with `/~` that means the ssh path was something like `ssh://user@host/~/home-dir-folder/`
|
||||||
// in which case want to strip the leading the `/` and expand the tilde.
|
// in which case want to strip the leading the `/`.
|
||||||
|
// On the host-side, the `~` will get expanded.
|
||||||
// That's what git does too: https://github.com/libgit2/libgit2/issues/3345#issuecomment-127050850
|
// That's what git does too: https://github.com/libgit2/libgit2/issues/3345#issuecomment-127050850
|
||||||
if abs_path.starts_with("/~") {
|
if abs_path.starts_with("/~") {
|
||||||
abs_path = shellexpand::tilde(&abs_path[1..]).to_string();
|
abs_path = abs_path[1..].to_string();
|
||||||
}
|
}
|
||||||
let root_name = PathBuf::from(abs_path.clone())
|
let root_name = PathBuf::from(abs_path.clone())
|
||||||
.file_name()
|
.file_name()
|
||||||
|
|
|
@ -327,7 +327,14 @@ impl SshClientDelegate {
|
||||||
cx,
|
cx,
|
||||||
)
|
)
|
||||||
.await
|
.await
|
||||||
.map_err(|e| anyhow::anyhow!("failed to download remote server binary: {}", e))?;
|
.map_err(|e| {
|
||||||
|
anyhow::anyhow!(
|
||||||
|
"failed to download remote server binary (os: {}, arch: {}): {}",
|
||||||
|
platform.os,
|
||||||
|
platform.arch,
|
||||||
|
e
|
||||||
|
)
|
||||||
|
})?;
|
||||||
|
|
||||||
Ok((binary_path, version))
|
Ok((binary_path, version))
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue