Skip to content

Commit 00bc435

Browse files
committed
Installer: switch to versioned folder layout with Current junction
Replaces flat {app}\ deployment with versioned Versions\<ver>\ + Current junction. Eliminates PendingUpgrade staging flow — new version goes to new folder, junction swaps atomically, mounts continue running from old version until unmounted. Changes: - [Files]: Deploy to {app}\Versions\{version}\ instead of {app}\ - [Registry]: PATH points to {app}\Current (junction) instead of {app}\ - [Dirs]: ProgramData under versioned folder - [Code]: Add CreateOrUpdateCurrentJunction() — creates/updates junction post-install - [Code]: Add GarbageCollectOldVersions() — keeps 1 most recent old version, deletes older (skips versions with running mounts detected via Get-Process gvfs.mount | .Path) - [Code]: Remove KeepMountsRunning variable, IsNormalInstall/IsStagingInstall checks - [Code]: Remove StagingUpdateService, ShowMountChoiceDialog (no longer needed) - [Code]: Simplify PrepareToInstall — no mount detection, no staging, just stop service - [Code]: Update InstallGVFSService to reference {app}\Current\GVFS.Service.exe - [Code]: Update MountRepos, MigrateConfigAndStatusCacheFiles, WriteOnDiskVersion16CapableFile to use Current junction paths - CurStepChanged: Remove staging logic, call CreateOrUpdateCurrentJunction + GarbageCollectOldVersions - CurUninstallStepChanged: Remove {app}\Current from PATH instead of {app} Flat-layout migration stub added (detects {app}\GVFS.exe, logs version) but defers actual file move to future PR to reduce complexity. Assisted-by: Claude Sonnet 4.5 Signed-off-by: Tyrie Vella <tyrielv@gmail.com>
1 parent 7f1dab2 commit 00bc435

1 file changed

Lines changed: 239 additions & 280 deletions

File tree

0 commit comments

Comments
 (0)