요약
CopyPack은 .dpt/, .git/, .DS_Store만 제외하고 팩 루트의 일반 파일을 전체 복사합니다. PrepareMany뿐 아니라 shell의 :reload/:sync도 staging 디렉터리에 전체 팩을 다시 복사합니다.
- 검토 기준:
main@4e87765f95c106edb3c956cfad2abc1db64c0c39
- 판정: 동작 CONFIRMED
- 우선순위: P3
- 성격: correctness bug가 아닌 성능·정책 trade-off
영향
팩 루트에 큰 fixture, 문서, 빌드 산출물 또는 상대 server.jar가 있으면 시작·reload 시간, 임시 디스크 사용량과 I/O가 전체 크기에 비례해 증가합니다.
발생 조건 및 확인 범위
.dpt, .git, .DS_Store 외 일반 파일은 복사됩니다.
- symlink는 따라가지 않고 복사를 오류로 종료합니다.
- refresh는 새 staging 디렉터리에 전체 복사 후 rename합니다.
- 작은 팩에서는 영향이 미미할 수 있으며 전체 staging copy는 격리와 원자적 교체라는 장점이 있습니다.
- 구체적인 end-to-end 성능 기준은 아직 측정하지 않았습니다.
재현 및 검증 방법
- 유효한 팩에
fixtures/large-test-data.bin 같은 비런타임 대형 파일을 추가합니다.
workspace.CopyPack 또는 dpt shell을 실행합니다.
- 실행 작업공간에 해당 파일이 복사됐는지 확인합니다.
- 작은 데이터 파일 하나만 수정하고
:reload를 실행합니다.
- 대형 fixture가 다시 복사되는지 확인하고, 없는 경우와 시간·쓰기 바이트를 비교합니다.
기대 동작
격리와 안전한 교체를 유지하면서 불필요한 반복 복사를 줄일 수 있어야 합니다. include/exclude 정책, fingerprint 기반 증분 staging 또는 copy-on-write 방식을 검토할 수 있습니다.
완료 조건
관련 코드
요약
CopyPack은.dpt/,.git/,.DS_Store만 제외하고 팩 루트의 일반 파일을 전체 복사합니다.PrepareMany뿐 아니라 shell의:reload/:sync도 staging 디렉터리에 전체 팩을 다시 복사합니다.main@4e87765f95c106edb3c956cfad2abc1db64c0c39영향
팩 루트에 큰 fixture, 문서, 빌드 산출물 또는 상대
server.jar가 있으면 시작·reload 시간, 임시 디스크 사용량과 I/O가 전체 크기에 비례해 증가합니다.발생 조건 및 확인 범위
.dpt,.git,.DS_Store외 일반 파일은 복사됩니다.재현 및 검증 방법
fixtures/large-test-data.bin같은 비런타임 대형 파일을 추가합니다.workspace.CopyPack또는dpt shell을 실행합니다.:reload를 실행합니다.기대 동작
격리와 안전한 교체를 유지하면서 불필요한 반복 복사를 줄일 수 있어야 합니다. include/exclude 정책, fingerprint 기반 증분 staging 또는 copy-on-write 방식을 검토할 수 있습니다.
완료 조건
.dpt,.git,.DS_Store제외와 안전한 symlink 정책을 유지한다.관련 코드
PrepareManyCopyPackRefreshPacks