From c35280a9ccf1624a93b94efb43e6e184d8c20934 Mon Sep 17 00:00:00 2001 From: ksj09406 Date: Tue, 22 Sep 2026 16:03:55 +0900 Subject: [PATCH] =?UTF-8?q?11=EC=B0=A8=20F-3=20=EB=92=A4:=20=EB=B3=B4?= =?UTF-8?q?=EB=82=B4=EA=B8=B0=EB=A1=9C=20=EB=84=98=EA=B8=B4=20=EC=99=BC?= =?UTF-8?q?=EC=AA=BD=20=ED=8F=B4=EB=8D=94=EB=A5=BC=20=EA=B8=B0=EB=B3=B8=20?= =?UTF-8?q?=EC=A0=80=EC=9E=A5=EC=86=8C=EA=B0=80=20=EB=8D=AE=EC=96=B4?= =?UTF-8?q?=EC=93=B0=EB=8D=98=20=EA=B2=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 사용자 발견: 폴더 둘을 보내면 왼쪽 칸이 설정의 기본 저장소(plain-compare)로 바뀌어 비교가 "왼쪽만" 투성이. FolderViewModel 이 넘어온 요청을 받은 뒤 저장소 기본값이 왼쪽을 덮어썼다(비교는 비동기라 덮인 값을 읽음) - 기본값을 먼저, 요청을 나중에 - 켤 때 받은 인자를 파일 로그에 남김(다음에 무엇이 넘어왔는지 바로 알게) - 확인: 기본 저장소 설정 그대로 폴더 2개 · 1개 - 칸 값 · 비교 요약이 보낸 폴더대로 Co-Authored-By: Claude Opus 5 --- src/MergeHub/Services/GitWorkspace.cs | 14 ++++++++++++++ src/MergeHub/ViewModels/FolderViewModel.cs | 14 ++++++++------ 2 files changed, 22 insertions(+), 6 deletions(-) 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(); } ///