2011-02-17 4 views
2

텍스트 및 이진 파일의 변경 사항을 유지해야하는 프로젝트가 있습니다.이진 AND 텍스트 파일이 포함될 때 버전 관리가 필요합니까?

  1. 를 사용하여 패치
  2. 자식 또는 HG와 같은 버전 관리 시스템을 사용 : 나는 다음 몇 가지 옵션을 사용할 수 있습니다.

내 용도로 텍스트 파일 만 사용하는 경우 패치를 사용하는 것이 더 좋습니다. 그러나 대체/추가/삭제 될 수있는 이미지가 있기 때문에 갈 수있는 가장 좋은 방법은 무엇입니까?

바이너리 차이점을 처리 할 수있는 깨끗한 diff/patch 유틸리티가 있습니까? (바이너리 지정 필요없이 - 개별 디렉토리가 아닌 전체 디렉토리를 비교할 수 있어야합니다. 바이너리 모드에서 bash의 diff 사용) 패치로 사용 하시겠습니까? 이 아닌 경우 어떤 버전 시스템이 바이너리 파일에 관해서 더 깨끗한 옵션입니까?

답변

2

Mercurial은 패치 큐 (mq 확장자 사용)의 개념을 가지고 있으며, 대부분 quilt에서 영감을 받았습니다.

  • 를 사용하여 하나의 패치 큐와 qqueue 명령으로
  • 를 사용하여 여러 패치 큐에있는 모든 패치 순서를 순차적으로,이 및 패치를 그룹화가 :
    이것은 여러 가지 방법으로 패치를 관리 할 수 ​​있습니다 어떤 기준 으로든 당신에게 적합합니다.

패치 대기열은 실제로 패치 파일이므로 쉽게 순서를 변경하고 하나의 대기열에서 다른 대기열로 이동/복사 할 수도 있습니다 (패치 대기열을 찾으려면 .hg 디렉토리를보십시오) .

Steve Losh's tutorial on mercurial queue에서 패치 대기열 관리에 대한 유용한 정보를 더 많이 찾을 수 있습니다.

2

Git과 Mercurial 모두 텍스트 및 이진 파일을 쉽게 처리 할 수 ​​있습니다. 선호하는 것을 사용하십시오. 그리고 네, VCS가 올바른 선택입니다.

+0

VCS는 이것을 훨씬 더 복잡하게 관리합니다. 필자의 목적을 위해, 일종의 패치와 패치가 저장소에서 유지 될 수 있다면 훨씬 더 깨끗합니다. – Vanwaril

+0

VCS는 패치가 포함 된 저장소 주변의 도구 일뿐입니다. – khmarbaise

+0

@Vanwaril : 패치 대기열을 찾고있는 것 같군요? 그렇다면 Mercurial과 Git 위에 패치 대기열을 구현하는 프로젝트가 있습니다. Mercurial에 대해서는 Git을위한'hg mq'를 참조하십시오. https://git.wiki.kernel.org/index.php/InterfacesFrontendsAndTools#Patch-management_Interface_layers – Amber

0

VCS가 맘에 들지 않으면 패치가 들어있는 ftp 서버를 사용해보십시오. 버전 번호는 디렉토리 이름으로 사용할 수 있습니다. 이 시스템은 디렉토리 이름을 기반으로 순차적으로 패치를 적용하는 스크립트로 백업 할 수 있습니다.

내가 진행하고있는 프로젝트에서 데이터베이스 패치가 이러한 방식으로 적용됩니다. 그러나 VCS 내부에서 유지 관리됩니다. 파일은 현재 버전을 유지하는 데 사용할 수 있습니다.이 파일은 적용 할 패치를 결정하기 위해 스크립트에서 읽습니다.