it-swarm-ko.tech

Subversion에게 파일을 이진 파일로 취급하도록하려면 어떻게해야합니까?

Subversion (svn)에게 파일을 이진 파일로 취급하도록하려면 어떻게해야합니까?

62
Nick

다음을 사용하여 리포지토리 내에있는 파일을 binary으로 수동으로 식별 할 수 있습니다.

svn propset svn:mime-type application/octet-stream <filename>

Subversion은 파일을 처음 추가 할 때 파일이 이진인지 여부를 확인하기 때문에 일반적으로 필요하지 않습니다. 바이너리로 취급해야 할 때 Subversion이 특정 유형에 "text"로 잘못 태그를 지정하는 경우 텍스트가 아닌 MIME 유형으로 해당 파일에 자동으로 태그를 지정하도록 Subversion의 auto-props feature 를 구성 할 수 있습니다. 파일에 구성된 속성에 관계없이 Subversion은 여전히 ​​파일을 이진 형식으로 리포지토리 내에 저장합니다.

Subversion이 MIME 유형을 "텍스트"유형으로 식별하면 svn diffsvn blame와 같이 이진 파일에서 사용할 수없는 특정 기능을 활성화합니다. . 또한 클라이언트별로 구성 할 수있는 자동 줄 끝 변환을 허용합니다.

자세한 내용은 Subversion에서 이진 파일을 어떻게 처리합니까? 을 참조하십시오.

81
stormlash

Subversion book 367 페이지부터

가장 일반적인 의미에서 Subversion은 CVS보다 이진 파일을보다 정교하게 처리합니다. CVS는 RCS를 사용하므로 변경 바이너리 파일의 전체 사본 만 연속 저장할 수 있습니다. 그러나 Subversion은 텍스트 또는 이진 데이터를 포함하는지에 관계없이 이진 차이 알고리즘을 사용하여 파일 간의 차이를 나타냅니다. 즉, 모든 파일이 저장소에 차등 저장 (압축)됩니다.

CVS 사용자는 키워드 확장 및 줄 끝 변환으로 인해 데이터가 왜곡되지 않도록 이진 파일에 -kb 플래그를 표시해야합니다. 그들은 때때로 이것을하는 것을 잊어 버립니다.

Subversion은 더 많은 편집증 경로를 취합니다. 첫째, 명시 적으로 요청하지 않는 한 어떤 종류의 키워드 나 줄 끝 변환도 수행하지 않습니다 (자세한 내용은“키워드 대체”및“라인 끝 문자 시퀀스”섹션 참조). 기본적으로 Subversion은 모든 파일 데이터를 리터럴 바이트 문자열로 취급하며 파일은 항상 저장소에 번역되지 않은 상태로 저장됩니다.

둘째, Subversion은 파일이 "텍스트"데이터인지 "이진"데이터인지에 대한 내부 개념을 유지하지만이 개념은 작업중인 사본에만 존재합니다. svn 업데이트 중에 Subversion은 로컬로 수정 된 텍스트 파일에서 상황에 맞는 병합을 수행하지만 이진 파일에 대해서는 그렇게하지 않습니다.

컨텍스트 병합이 가능한지 확인하기 위해 Subversion은 svn : mime-type 속성을 검사합니다. 파일에 svn : mime-type 속성이 없거나 텍스트 (예 : text/*) 인 MIME 유형이있는 경우 Subversion은 해당 파일이 텍스트라고 가정합니다. 그렇지 않으면 Subversion은 파일이 이진 파일이라고 가정합니다. Subversion은 svn import 및 svn add 명령에서 이진 감지 알고리즘을 실행하여 사용자를 도와줍니다. 이 명령을 사용하면 추측 할 수 있으며 추가 할 파일에서 이진 svn : mime-type 속성을 설정합니다 (아마도). Subversion이 잘못 추측하면 사용자는 항상 속성을 제거하거나 직접 편집 할 수 있습니다.

손 편집은

svn propset svn:mime-type some/type filename.extension
21
Evil Andy

기본적으로 MIME 유형을 8 진수 스트림으로 설정해야합니다.

svn propset svn:mime-type application/octet-stream <filename>
15
KTamas

'svn add'가 잘못된 유형을 추측하면 다음과 같은 오류가 발생합니다.

svn: E200009: File 'qt/examples/dialogs/configdialog/images/config.png' has inconsistent newlines
svn: E135000: Inconsistent line ending style

해결 방법은 속성없이 파일을 추가 한 다음 두 번째 단계에서 속성을 설정하는 것입니다.

svn add --no-auto-props qt/examples/dialogs/configdialog/images/config.png
svn propset svn:mime-type image/png qt/examples/dialogs/configdialog/images/config.png
13
user1454388

예를 들면 다음과 같습니다.

svn propset svn:mime-type image/png foo.png
8
Jan Krüger

Subversion은 파일이 이진인지 아닌지 자동으로 검색 을 시도하지만 svn propset 을 사용하여 MIME 유형을 재정의 할 수 있습니다. 예를 들어, svn propset svn:mime-type application/octet-stream example.txt. 그러면 파일이 텍스트 파일이 아닌 바이트 모음으로 작동하게됩니다. 파일 이식성 에있는 svn 매뉴얼을 참조하십시오.

4
grammar31

Windows에서 거북이 svn을 사용하는 경우 파일을 마우스 오른쪽 버튼으로 클릭하고 속성으로 이동하십시오. new를 클릭하고 svn : mime-type 유형의 새 속성을 추가하십시오. 가치를 위해 : application/octet-stream

3
Brian R. Bondy

Subversion FAQ 에 따라 svn propset을 사용하여 svn : mime-type 속성을 응용 프로그램/옥텟 스트림

2
Adrian Petrescu

svn은 mime-type 속성을 찾고 존재하지 않는 경우 텍스트라고 생각합니다. 이 속성을 명시 적으로 설정할 수 있습니다. http://svnbook.red-bean.com/en/1.5/svn.forcvs.binary-and-trans.html

2
Paul Dixon

일반적으로 기본적 으로이 작업을 수행하지만 필요하지 않은 경우 파일 속성과 propset을 살펴볼 필요가 있습니다.

0
Frank Wiles