feat(core): core:update 기본을 코어 변경분만 적용(3-way skip)으로 전환
core:update Step 7 이 targets 전체를 무조건 재복사하고 orphan 을 삭제하여 사용자 .htaccess 커스텀 블록·_bundled 커스텀 확장이 소실되던 사고(공개 )를 차단한다. 백업(base)↔_pending(theirs) 3-way md5 비교로 코어가 실제 변경/추가한 파일만 산출해 적용하고, 코어 미변경 파일은 복사·권한·mtime 을 전부 스킵해 현재 디스크 상태(사용자 수정 포함)를 보존한다. 전체 덮어쓰기 + orphan 정리가 필요하면 --prune 으로 opt-in. 백업 부재(--no-backup) 시 base 가 없어 전체 덮어쓰기로 안전 회귀 + 안내를 출력한다. 기존 stale 정리 테스트는 새 기본(증분)에서 orphan 을 삭제하지 않으므로 prune 컨텍스트로 전환했고, 증분 3-way 판정·목록 적용·fallback 단위 테스트와 --prune 커맨드 표면 테스트를 추가했다. 번들 ja 언어팩은 코어 apply_mode 안내 키(g7-core-ja)와 함께, 같은 빌드에서 동기화된 관리자↔유저 크로스링크 라벨(board/ecommerce/admin_basic/basic)의 일본어 번역을 반영하고 각 패키지 버전·CHANGELOG 를 갱신했다.
This commit is contained in:
1 parent
efc8a7ae6b
commit
d0943d6cb6
26 files changed
+921
-29
No files matched your search
@@ -120,4 +120,17 @@ class CoreUpdateWithBundleTest extends TestCase
|
||||
->expectsOutputToContain('--vendor-mode')
|
||||
->assertExitCode(0);
|
||||
}
|
||||
|
||||
/**
|
||||
* `--prune` 옵션이 등록되어 있는지 검증합니다 (공개 #64).
|
||||
*
|
||||
* 실제 파일 적용 로직(증분/prune)은 CoreUpdateServiceTest 의 applyUpdate 단위
|
||||
* 테스트가 커버하며, 여기서는 커맨드 표면에 옵션이 노출되는지만 확인한다.
|
||||
*/
|
||||
public function test_core_update_command_accepts_prune_option(): void
|
||||
{
|
||||
$this->artisan('core:update', ['--help' => true])
|
||||
->expectsOutputToContain('--prune')
|
||||
->assertExitCode(0);
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user