diff --git a/DESIGN.md b/DESIGN.md index e840754..34173a6 100644 --- a/DESIGN.md +++ b/DESIGN.md @@ -52,11 +52,11 @@ local branch and the tracked remote branches with which it is currently synced a a single UI object. Remote branches are displayed separately if they're unsynced, untracked or absent. Consequently, the commands available for a branch as displayed in the UI have polymorphic effect: -1) "Track": Applies to any remote branch that is not unsynced (and therefore already tracked); - in the CLI-only "tracking ref absent" state, this will effectively cancel its pending deletion. +1) "Track": Applies to any remote branch that is not already tracked. 2) "Untrack": - For a *tracking local/combined branch*, untracks all remotes. - For an *unsynced remote branch*, untracks one remote. + - For a *deleting remote branch*, clears the pending delete (it was tracking absence). 3) "Push": Applies to local branches tracking any remotes. 4) "Push to remote...": Applies to local branches when any remotes exist. 5) "Fetch": Downloads for a specific branch only. diff --git a/src-tauri/src/menu.rs b/src-tauri/src/menu.rs index 842c570..75029f0 100644 --- a/src-tauri/src/menu.rs +++ b/src-tauri/src/menu.rs @@ -344,9 +344,6 @@ pub fn handle_context(window: Window, ctx: Operand) -> Result<()> { StoreRef::RemoteBranch { is_tracked: false, .. - } | StoreRef::RemoteBranch { - is_absent: true, - .. } ), )?; @@ -364,8 +361,7 @@ pub fn handle_context(window: Window, ctx: Operand) -> Result<()> { r#ref, StoreRef::RemoteBranch { is_synced: false, // we can *see* the remote ref, and - is_tracked: true, // it has a local, and - is_absent: false, // that local is somewhere else + is_tracked: true, // it has a local (regardless of absence) .. } ),