Apache Subversion 1.15의 Pristines On Demand는 클라이언트에 보관하던 파일 기준본을 필요할 때 내려받아 로컬 저장 공간을 줄이는 기능이다. Apache는 선택 적용 시 작업 사본의 저장 공간을 최대 50% 줄일 수 있다고 설명한다. 실제 절감률을 보장하는 수치는 아니다.
Apache Software Foundation은 2026년 10월 14일 발표에서 1.15를 다운로드할 수 있다고 밝혔다. 저장 공간 절감 대상은 개발자 기기의 작업 사본이며, 서버 저장소를 줄이는 기능은 아니다.
로컬 비교를 받쳐 주던 BASE 캐시
기존 작업 사본은 편집할 파일 외에 각 파일의 BASE 리비전도 보관한다. BASE는 로컬 변경을 비교하거나 되돌릴 때 기준이 되는 버전이며, 이 파일 사본을 pristine이라고 부른다.
릴리스 노트에 따르면 기본 구성의 .svn 디렉터리는 체크아웃한 파일들보다 공간을 조금 더 차지한다. 대부분은 BASE 캐시이므로, 이를 줄이거나 없애면 공간을 아낄 수 있지만 로컬에서 끝나던 작업에 저장소 통신이 필요해질 수 있다.
Apache의 비교표에서 BASE 기준 변경 비교(diff)와 되돌리기(revert)는 저장소에 접속하지 않던 작업에서 필요한 기준본을 내려받는 작업으로 바뀐다. 이 다운로드를 릴리스 노트는 hydration이라고 부른다.
매번 모든 파일을 받는다는 뜻은 아니다. 로컬에서 내용이 수정된 파일에 필요한 pristine이 없으면 내려받고, 받은 사본은 필요한 동안 캐시에 남는다.
다만 초기 구현은 작업 대상들을 포함하는 하위 트리에서 다른 다운로드 대상 파일도 함께 받을 수 있다. Apache는 파일 크기와 네트워크 속도에 따라 체감 지연이 생길 수 있다고 설명한다.
커밋도 달라진다. 변경된 부분만 보내던 방식 대신, 로컬에서 수정한 각 파일의 전체 내용을 전송한다.
체크아웃 선택에 따라 갈리는 호환성
svn checkout의 --store-pristine=no 옵션은 작업 사본 전체에 적용된다. 이 선택은 Format 32를 사용하므로 해당 작업 사본을 다루는 클라이언트가 모두 1.15 이상이어야 한다.
기본 체크아웃은 BASE를 모두 캐시하는 Format 31을 유지하며, 1.8 이상 클라이언트와 호환된다. Format 32에서도 전체 캐시를 사용할 수 있으므로 형식 번호만으로 필요할 때 받는 모드인지 판단할 수는 없다.
Apache의 기능 표는 필요한 서버와 저장소 버전을 모두 제한 없음으로 표시한다. 서버 업그레이드가 전제인 기능은 아니며, 구형 클라이언트는 별도의 Format 31 작업 사본을 계속 사용할 수 있다.
따라서 체크아웃 정책을 바꿀 만한 대상은 크고 자주 수정하지 않는 파일이 많고, 로컬 공간은 부족하지만 저장소 연결은 빠르고 안정적인 환경이다. 파일을 자주 고친다면 기준본 다운로드와 수정 파일 전체 업로드가 공간 절감보다 더 큰 부담이 될 수 있다.
오프라인 diff와 revert도 필요한 기준본이 로컬에 있는지에 따라 가능 여부가 달라진다. 팀 전체의 기본값을 바꾸기보다, 파일 변경 빈도와 연결 조건이 맞는 작업 사본부터 선택하는 편이 타당해 보인다.
확인한 자료에는 디스크 사용량이나 통신량을 비교한 측정 방법과 벤치마크가 없으며, 이 기사에서도 실행 시험을 수행하지 않았다.
서버 저장소가 크다는 사실만으로 로컬 절감량을 알 수는 없다. 실제 파일 구성에서 확보되는 공간과 다운로드·업로드 대기 시간은 별도로 확인할 부분이다.
별도 작업 사본에서 설정 확인
1.15 이상 클라이언트에서 별도 경로로 체크아웃하면 기존 작업 사본을 유지하면서 설정을 확인할 수 있다. 다음 명령은 릴리스 노트에 문서화된 옵션과 조회 명령을 사용한다.
svn checkout --store-pristine=no <repository-url> <working-copy-path>
cd <working-copy-path>
svn infoApache의 svn info 예시는 Working Copy Format 값이 32이고 Working Copy Store Pristine 값이 no인 구성을 보여 준다. 이 확인은 필요할 때 기준본을 받도록 설정됐는지를 확인할 뿐, 저장 공간 50% 절감이나 성능 향상을 입증하지는 않는다.
1.15의 변화는 모든 팀에 같은 이득을 주기보다, 로컬 캐시와 저장소 통신 사이의 선택을 넓힌다. 도입 판단에서는 확보한 공간과 함께 기준본 다운로드, 커밋 전송량, 팀 도구의 클라이언트 버전을 살펴볼 필요가 있다.
Pristines On Demand의 도입 기준은 최대 절감률이 아니라, 줄어드는 BASE 캐시가 늘어나는 통신 부담과 클라이언트 호환성 비용을 상쇄하는지다.
