2009-07-20 8 views
6

SVN에 이진 파일을 저장하는 다른 방법이 있습니까? 그렇다면 무엇이며 스토리지 옵션을 어떻게 수정합니까? - 수입 - 수출SVN에 이진 파일을 저장하는 방법

  1. 압축 된 tar :

    나는 SVN에서 바이너리 파일을 저장하는 4 가지 방법이 있다는 것을 읽었다.
  2. 타르 - 가져 오기 - 내보내기.
  3. 가져 오기 - 내보내기.
  4. 효율적인 체크인.

어느 것이 시간 효율성에 가장 유용합니까? SVN에서 이러한 메서드 중 하나를 사용하도록 설정하려면 어떻게해야합니까?

감사합니다. Oded.


많은 바이너리 파일과 크기가 큰 파일이 많습니다. 모든 것이 자주 변경됩니다. 저는 현재 CVS에서 일하고 있으며 곧 SVN으로 전환 할 것입니다. 바이너리를 저장하는 방법에 대해 알고 싶었습니다.

성능 튜닝 Subversion (위에서 언급 한)을 읽었을 때 유용하다는 것을 알았지 만 예제가 없기 때문에 제안한 4 가지 방법을 정확히 이해하지 못했습니다.

기본 질문은 날씨입니까, 아니면 기본값이 좋지 않은 것입니까? 그리고 무엇입니까? 내 첫 번째 고려 사항은 시간 효율적이며 공간입니다. 감사합니다 :)

답변

3

당신은 Subversion이 이러한 방법 중 하나를 사용하도록 설정하지 않았 으면 파일을 저장소에 넣을 때 사용할 방법을 지정해야합니다. 그리고 "방법"으로, 당신이 언급 한 4 가지를 의미하는 것이 아니라, 단지 "가져 오기"또는 "커밋"을 의미하며, Subversion에 새로운 방법을 저장할 때마다 선택한 방법에 대해 계속 알려야합니다 해당 파일의 저장소로의 개정.

Performance tuning Subversion을 참조하십시오.

"method 1"을 사용하여 tar로 압축 한 다음 가져 오기를 사용하려면 이진 파일을 모두 .tar 파일로 압축 한 다음 가져 오기를 사용해야합니다 Subversion의 명령을 사용하여 파일을 저장소에 추가하십시오.

또한 import 명령은 큰 파일을 거의 변경하지 않으면 파일을 이전 버전의 델타가 아닌 새 파일로 저장하므로 시간 효율적이지만 공간 효율적이지는 않습니다. 저지른.

서브 버전 자체는 커밋 및 가져 오기 만 수행합니다. 커밋은 델타의 시퀀스 (또는 새로운 파일의 첫 번째 개정판)에 저장된 기존 파일의 새로운 개정판이며, 가져 오기는 새로운 파일입니다. 다른 건 너 자신을해야 해.

바이너리 파일이 지금 만 변경된 경우에는 더 많은 내용을 살펴볼 가치가 있지만 정기적으로 변경하는 경우 커밋 명령을 사용하여 Subversion을 정상적으로 사용하는 것이 좋습니다.

바이너리 파일의 일반적인 조언은 가능한 경우 이진 파일을 생성하는 소스 코드를 바이너리 파일 저장소에 저장하는 것이 아니라 재 작성 도구를 다시 실행한다는 것입니다 실제 이진 파일 바이너리 파일을 재생하는 데 시간이 많이 들거나 공간이 많이 소모되는 경우에만 이진 파일을 저장하십시오.

바이너리 파일은 실제로 비교할 수없는 문제가 있으므로 개발자 a와 b가 모두 최신 버전을 검색 한 다음 개발자 a가 개발자가 동일한 작업을 시도하기 전에 새 개정판을 커밋합니다. 충돌이 발생할 것입니다. 개발자 B에게는 옵션이 없어도 혼자서 변경 사항을 파악하려고 할 수 있습니다.


편집는 : 제가하여 COMMIT 및 IMPORT 의미를 강조하자.

주요 차이점은 이미, 이미 저장소에있는 파일이 이전 저장소 버전에 대한 작업 사본에서 파일을 diff를하려고 가정 의지를 COMMIT, 만 변경 사항을 저장합니다. 이러한 차이점을 해결하기 위해서는 시간과 메모리가 필요하지만 일반적으로 저장소의 작은 개정 변경 집합이됩니다. 즉, Subversion 서버의 디스크 공간은 IMPORT 명령보다 영향을 덜받습니다.

IMPORT는 새 파일을 가져 와서 "이전 파일을 잊어 버리십시오.이 파일을 저장하십시오"라고 말하면서 새 파일을 가져 오므로 시간이나 메모리가 소요되지 않습니다. 차이점을 찾아 낼 수는 있지만 결과 저장소의 변경 집합은 더 커질 것입니다. 즉, Subversion 서버의 디스크 공간은 COMMIT 명령보다 더 큰 영향을 미치지 만 일반적으로 IMPORT는 훨씬 빠르게 실행됩니다.

이 부과하려는 다른 워크 플로우는 서브 버전의 외부에서 수행되어야한다. 여기에는 운영 체제에서 사용할 수있는 TAR 명령 및 압축 옵션이 포함됩니다. "방법 1"을 사용하려면 Subversion에 제공하기 전에 단일 .tar 파일로 가져 오려는 파일을 수동으로 압축해야합니다. Subversion에게 당신을 위해서 그렇게 할 것을 요청할 수는 없습니다. 물론 프로세스를 자동화하는 스크립트 파일을 만들 수도 있지만 여전히 Subversion 문제는 아닙니다.

나는 이익이 실제로 당신이 당신의 서브 워크 플로우에 부과됩니다 추가 작업 가치가 있는지 파악하기 위해 몇 가지 심각한 테스트를 할 것입니다.

+0

당신은 근본적으로 단지 2 가지 옵션이 가져 오기와 커밋이라고 말하고 있습니까? 이고 가져 오기에는 압축 된 tar 파일 (압축 된 수동) 또는 일반 파일을 가져 오는 옵션이 있습니까? 3 개 중 하나가 시간 효율적입니까? 감사합니다 :) – Oded

+0

IMPORT는 원본 파일, tar 파일, gzip 파일, zip 파일, rar 파일 등 무엇이든간에 가져온 것입니다. COMMIT. 차이점은 커밋은 이전 저장소 리비전에 대해 파일을 비교하려고 시도하지만 IMPORT는 수행하지 않으므로 더 빠를 것이지만 급진적 인 새 파일 내용과 대비하여 실제로 이전 버전과 변경된 경우 더 많은 공간이 필요하다는 것입니다 . –

+0

나는 지금 이해할 것 같아. VisualSVN에서 바이너리 파일을위한 저장소 mothod를 구성 할 수 있습니까? 아니면 수동으로 수행하거나 스크립트를 작성하는 그런 옵션은 없습니까? – Oded

1

자세한 상황을 설명해 주시겠습니까?

는 모두 함께 변경 여러 좀 작은 바이너리 파일이 있습니까? 자주 변경되는 몇 가지 큰 바이너리 파일? 파일이 자주 변경됩니까?

당신은 실제로 기본값이 충분하지 않은 것으로 나타났습니다? 난 항상 평범한 것과 같은 방법으로 바이너리 파일을 추가하고 그냥 작동하도록 발견했습니다. 성능 문제와 마찬가지로 좋은 이유가없는 한 일을 복잡하게 만들지 않으려합니다. 그 경우에는 그 이유를 우리와 공유하십시오.

관련 문제