문제

LibreOffice는 압축 된 XML 기반 형식을 사용하여 결과 파일을 상대적으로 작게 작지만 SVN의 diff 목적으로 쓸모 없게 만듭니다. 그러나, 나는 최근에 평평한 XML 당량이 있다는 것을 알게되었음을 알았습니다 (예 : .ODS 스프레드 시트가 본질적으로 텍스트 인 .OD FLAT XML 스프레드 시트가됩니다).

이제 SVN의 텍스트 vs 바이너리에 관한 것은 일반적으로 20KB 파일이 있고 압축 된 경우 작은 변화는 2 진화가되는 경우 20KB가 커밋 할 수 있습니다. 텍스트가 있고 diff 만 저장되는 경우에는 단 몇 바이트 만 비용이 소요될 수 있습니다.

내 경우에는 164KB (Flat XML)와 18.3KB의 .ods (압축 XML)로 164KB를 차지하는 일반적인 스프레드 시트를 가지고 있습니다. 몇 개의 셀을 추가하고 저장하면 diff를 수행하면 파일의 50 % 이상이 변경되었음을 보여줍니다. 평면 XML 버전이 164KB이며, 이는 실제로 바이너리 버전을 저장하는 것이 더 효율적이라는 것을 의미합니다.

그래서, 나는 뭔가를 놓치거나,이 평평한 XML 일이 정말 비효율적입니까?

도움이 되었습니까?

해결책

이것은 본질적으로 다음과 같은 중복입니다. Subversion은 OpenXML Office 문서를 효율적으로 저장합니까?

여전히 사실이 있습니다. 이것을 해결하기위한 일이 있습니다. stefan의 dev@subversion.apache.org 목록에 비슷한 질문에 대한 응답.

Format 7이 스레드가 FSFS 형식 7, 1.9.0의 향후 부분을 말하는 것입니다. 불행히도, 그때까지 나는 Stefan이 이것을 향해 한 일이 형식 7 (그러나 나는 잘못 될 수 있음)과 FSX 백 엔드 (FSX Back End)가 1.9.0으로 존재할 실험 저장 메커니즘 인 FSX 백 엔드로 끌어 올릴 수있는 일을 믿습니다. 그러나 아직 생산 용도에 좋지 않을 것입니다 (그러나 나는 그에 잘못 될 수 있습니다).

플랫 XML에 대한 질문에 대한 질문에 많은 도움이 될 것입니다. 전체 스레드를 읽으면 (내가 제공 한 단일 응답이 아닌) 나는 그것이 시간 동안 가능한 해결 방법으로 언급되면 꽤 확신한다.

SVN Diff를 사용하여 사용하는 것처럼 들리므로 평면 XML이 얼마나 많은 저장 공간을 줄 수 있는지 아이디어를 얻습니다. 불행히도 정말로 당신을 많이 도울 수 없습니다. 먼저 모든 Subversion은 통합 된 diff 형식과 멀리 다른 바이너리 델타 형식을 사용합니다.

압축 된 경우에 대해서도 당신의 가정 중 일부는 실제로 사실이 아닙니다. 압축 된 XML 번들의 일부를 변경 했으므로 전체 파일이 변경되었음을 의미하지는 않지만 STEPAN의 전자 메일을 참조하십시오.

또한 우리는 델타를 파일의 앞의 개정판에 저장하지 않습니다. 오히려 우리는 델타 알고리즘을 건너 뜁니다 건너 뜁니다. 델타를 저장하고 때로는 전체 텍스트를 저장할 수있는 개정판. 그 목적의 목적은 특정 개정의 전체 텍스트를 계산하기 위해 수행 된 작업의 양을 제한하는 것입니다. 어떤 것들은 델타 알고리즘을 건너 뛰는 fsfs.conf 옵션 .

플랫 파일이 효율적 인 경우 정확한 아이디어를 얻으려면 일부 실험을 수행하고 디스크의 저장소 크기가 어떻게 성장하는지 확인해야합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top