fix(deployment): accept absolute local paths in mappings and name menu entries after the server (#885)

A mapping's local path may now be an absolute path inside the project (the form IntelliJ writes), and a deployment path of . means the server root; absolute paths outside the project are kept as they are. The project-tree Deployment submenu names the default server (Upload to <server>, Download from <server>, Sync with Deployed to <server>…) and gains Sync with Deployed to Default Server. Remote Host downloads use the backend-resolved mapping, which fixes downloads under symlinked or case-different paths.

Fixes #877

Co-authored-by: florentvdry <[email protected]>
Цей коміт міститься в:
Florent Vтаflorentvdry authored and GitHub committed 2026-11-03 23:35:43 +08:00
1 джерело 0396f0d552
коміт 2d4d6ee6bf
17 files changed
+372 -65

No files matched your search

+6 -2
Переглянути файл
@@ -1,6 +1,6 @@
use crate::state::AppState;
use ide_core::{IdeResult, IpcPath, RequestId};
use ide_remote::{DeployedPath, DeploymentCoverage, SyncEntry, SyncStep, TransferReport};
use ide_remote::{DeployedPath, DeploymentCoverage, DeploymentRoot, SyncEntry, SyncStep, TransferReport};
use ide_ssh::{FsConnection, RemoteEntry};
use tauri::{State, Window};
@@ -86,7 +86,11 @@ pub async fn deploy_info(
#[tauri::command]
#[specta::specta]
pub async fn deploy_server_root(window: Window, state: State<'_, AppState>, server: String) -> IdeResult<String> {
pub async fn deploy_server_root(
window: Window,
state: State<'_, AppState>,
server: String,
) -> IdeResult<DeploymentRoot> {
ide_host::ops::deploy::deploy_server_root(window.label(), &state.host, server).await
}