diff --git a/src/MergeHub/Services/GitWorkspace.cs b/src/MergeHub/Services/GitWorkspace.cs index f1410ca..5e27378 100644 --- a/src/MergeHub/Services/GitWorkspace.cs +++ b/src/MergeHub/Services/GitWorkspace.cs @@ -723,6 +723,20 @@ namespace MergeHub.Services private void RouteStartupArgs() { var args = StartupArgs.Current; + + // 받은 인자를 파일 로그에 그대로 남긴다(11차 F-3). 화면 로그는 끄면 사라져, 실제 탐색기에서 + // "폴더 하나만 읽혔다" 는 일이 났을 때 무엇이 넘어왔는지 알 길이 없었다. + try + { + var raw = Environment.GetCommandLineArgs(); + if (raw.Length > 1) + _logger.I($"켤 때 받은 인자 {raw.Length - 1}개: " + string.Join(" | ", raw.Skip(1)) + + $" → {args.Mode} · 왼쪽 '{args.LeftFolder}{args.LooseLeft}' · 오른쪽 '{args.RightFolder}{args.LooseRight}'"); + } + catch (NotSupportedException) + { + } + if (!ReportArgs(args, "탐색기에서")) return; if (args.WantsFolder) diff --git a/src/MergeHub/ViewModels/FolderViewModel.cs b/src/MergeHub/ViewModels/FolderViewModel.cs index 6340cad..804ea8e 100644 --- a/src/MergeHub/ViewModels/FolderViewModel.cs +++ b/src/MergeHub/ViewModels/FolderViewModel.cs @@ -132,18 +132,20 @@ namespace MergeHub.ViewModels { _workspace = workspace; - // 탐색기 우클릭으로 켰으면 그 폴더가 왼쪽에 들어온다. - _workspace.FolderCompareRequested += OnFolderCompareRequested; - _workspace.Recent.Changed += (_, _) => _workspace.OnUi(RefreshRecent); - RefreshRecent(); - _workspace.DeliverPendingFolderCompare(); - // 저장소를 열어 뒀으면 왼쪽 기본값으로 삼는다 - 대개 그 폴더를 견주게 된다. + // 넘어온 요청보다 먼저 둔다(11차 F-3). 예전에는 요청을 받은 뒤에 이 기본값이 왼쪽을 덮어써, + // 탐색기에서 폴더 둘을 보내면 왼쪽 칸이 기본 저장소(plain-compare)로 바뀌고 비교가 "왼쪽만" 투성이가 됐다. if (!string.IsNullOrWhiteSpace(_workspace.RepositoryPath) && Directory.Exists(_workspace.RepositoryPath)) { LeftFolder = _workspace.RepositoryPath; } + + // 탐색기 우클릭 · 보내기로 켰으면 그 폴더가 들어온다 - 기본값을 이긴다. + _workspace.FolderCompareRequested += OnFolderCompareRequested; + _workspace.Recent.Changed += (_, _) => _workspace.OnUi(RefreshRecent); + RefreshRecent(); + _workspace.DeliverPendingFolderCompare(); } ///