패치에 대한 작업

패치를 사용하면 개발자는 작업을 저장소에 저장하지 않고 공유할 수 있습니다. 패치는 개발자가 저장소를 통해 공유된 프로젝트에 작업을 제공하려고 하지만 저장소에 쓰기 액세스가 없을 때 유용합니다. 이 경우 프로젝트에 정의된 프로세스에 따라 개발자는 패치를 작성하여 쓰기 액세스가 있는 개발자에게 이메일을 보내거나 프로젝트에서 사용하는 버그 보고 시스템의 버그에 첨부할 수 있습니다. 쓰기 액세스가 있는 개발자는 프로젝트에 이 패치를 적용한 다음 변경사항을 커미트할 수 있습니다.

CVS 프로젝트에서 패치를 작성하려면 다음을 수행하십시오.

  1. 패치에 포함할 수정사항이 있는 자원을 선택하십시오. 기본 모드로 실행되는 패치 작성 마법사는 다중 프로젝트 패치 작성 방법을 알고 있으므로 다중 프로젝트에 상주하는 자원을 원하는 레벨에서 선택할 수 있습니다. 또한 패치는 패치를 생성한 동일한 파일 변경내용에 적용해야 하므로 패치를 동일한 자원 배열에 적용하는 단계를 취해야 합니다. 가장 쉬운 방법은 버전 맨 위에 패치를 작성하는 것입니다.
  2. 팝업 메뉴에서 팀 > 패치 작성...을 선택하십시오. 패치 작성 마법사가 열립니다.
  3. 다음 중 패치를 저장할 위치를 선택하십시오.
    1. 클립보드로 저장 - 패치를 클립보드에 놓아 이메일 프로그램과 같은 텍스트 편집기에 붙여넣을 수 있습니다.
    2. 파일 시스템에 저장 - 패치를 로컬 파일 시스템의 지정한 파일에 저장합니다.
    3. 작업공간에 저장 - 패치를 기존 워크벤치 프로젝트 중 하나에 있는 지정한 파일에 저장합니다.
    패치가 작을 때는 클립보드를 사용하여 패치를 전송할 수 있지만 대부분의 경우에는 로컬 파일 시스템을 사용하는 것이 가장 좋습니다.
  4. 변경사항 분할창에 표시되는 자원 트리를 펼쳐 패치 선택사항을 미리보고 세부 조정할 수 있습니다. 패치에는 확인한 요소만 포함됩니다. 다음을 클릭하여 패치 생성 방법을 구성하십시오.
  5. 다음 중 패치 구성 방법을 선택하십시오.
    1. 차이 출력 형식 - 여러 가지 공통 차이 출력 형식을 선택할 수 있습니다. 통합은 Eclipse를 포함한 여러 패치 애플리케이션 도구에서 사용하는 형식입니다. 헝크(패치 용어)에 대해 언급된 행 번호가 올바르지 않아도 컨텍스트 및 통합 차이에서 사용된 형식을 통해 패치를 적용할 수 있습니다. 이 경우 패치를 적용하면 알고리즘은 헝크에 대해 지정된 컨텍스트와 일치하는 행 세트에서 앞뒤로 모두 스캔합니다.
    2. 패치 루트 - 패치의 루트 레벨을 지정할 수 있습니다. 선택사항은 작업공간, 프로젝트선택입니다.

      작업공간을 사용하면 여러 프로젝트의 자원을 패치에 포함할 수 있습니다. 기본 옵션입니다. 작업공간 패치는 작업공간 내 모든 자원에 적용할 수 있습니다. 이 패치에는 패치 적용 마법사로 패치해야 하는 자원을 파악할 수 있는 충분한 정보가 들어 있습니다.

      프로젝트 패치의 루트는 프로젝트 레벨입니다. 즉, 단일 프로젝트의 자원만 포함할 수 있으며 동일한 프로젝트에 적용해야 합니다.

      선택 패치의 루트는 선택한 임의의 자원이며 동일한 자원에 적용되어야 합니다.
  6. 완료를 클릭하십시오.
  7. 패치할 프로젝트에 적절한 방법으로 패치를 전송하십시오.

패치를 적용하려면 다음을 수행하십시오.

  1. 패치가 생성된 자원을 선택하십시오. 이 자원에는 패치가 생성된 배열과 동일한 파일 변경내용이 있어야 합니다.
  2. 팝업 메뉴에서 팀>패치 적용...을 선택하십시오. 패치 적용 마법사가 열립니다.

    또한 패치 컨텐츠를 클립보드로 복사한 후 편집 > 붙여넣기를 선택하여 패키지 탐색기 보기에 직접 붙여넣을 수도 있습니다. 이 경우, 다음 단계를 건너뛰십시오.
  3. 패치를 찾을 위치를 표시하십시오.
    1. 파일 - 패치가 로컬 파일 시스템의 파일에 있습니다. 파일의 전체 경로를 입력하거나 찾아보기... 단추를 사용하여 파일을 찾으십시오.
    2. 클립보드 - 패치가 클립보드에 있습니다. 경고: 파일 기반 패치를 사용하는 것이 안전합니다. 클립보드를 사용할 때 패치가 Linux 및 Windows와 같이 서로 다른 플랫폼에서 생성된 경우에는 행 종료가 적절하게 처리되지 않을 수 있습니다.
    3. URL - 제공된 URL에 패치가 있습니다. 경고: 입력한 URL이 유효하고 적절한 패치가 포함되었는지 확인하십시오. 그렇지 않으면 이를 적용할 수 없습니다. 또한 URL에서 직접 패치를 적용하면 시간이 걸릴 수 있습니다.
    4. 작업공간 - 작업공간 내 특정 위치에 패치가 저장됩니다.
    다음을 클릭하여 패치 적용 결과를 확인하십시오.
  4. 선택적 단계: 이 단계는 패치 루트가 프로젝트 또는 선택 레벨인 경우에만 적용됩니다. 작업공간 루트 패치는 자동으로 패치 미리보기 페이지로 진행됩니다. 패치 대상 스펙 페이지에서, 패치 루트 기능을 수행할 자원을 선택해야 합니다.
  5. 패치 미리보기 페이지에는 패치가 작업공간의 파일에 적용되었는지 여부가 표시됩니다. 맨 위 분할창에는 패치에 포함된 변경사항의 목록이 표시됩니다. 맨 위 분할창에는 두 가지 유형의 항목이 있습니다. 하나는 파일 변경사항이고 다른 하나는 일치하지 않는 패치 세그먼트(패치 용어에서는 '헝크'로 부름)입니다.
    1. 하나 이상의 패치 세그먼트가 파일에 자동으로 적용되는 경우 파일은 입력 변경 표시기와 같이 표시됩니다. 파일을 두 번 클릭하여 변경사항을 검사할 수 있습니다.
    2. 하나 이상의 헝크를 자동으로 적용할 수 없는 경우에는 헝크 항목이 맨 위 분할창에 파일 하위로 표시되고 빨간색 느낌표는 패치나 헝크에 문제가 있음을 나타냅니다. 헝크를 두 번 클릭하여 검사할 수 있습니다. 그런 다음, 오른쪽 분할창에서 왼쪽에 있는 파일에 헝크를 자동으로 직접 적용할 수 있습니다. 왼쪽 분할창에서 저장하면 맨 위 분할창의 상위 파일 항목이 업데이트되지만 디스크의 파일이 수정되지는 않습니다. 디스크의 파일은 완료를 누르는 경우에만 수정됩니다. 전체 패치를 제대로 적용하려면 패치 세그먼트를 수동으로 적용하여 문제점(빨간색 느낌표)을 제거 또는 컨텍스트 메뉴에서 제거를 선택하거나 마법사 페이지의 옵션을 조절하여 조작에서 패치 세그먼트를 제외시키는 방법으로 문제점을 제거해야 합니다.
  6. 모든 항목이 적절하면 완료를 클릭하여 패치를 적용하십시오. 패치로 수정된 각 파일의 전송 변경사항은 작업공간에 포함되지 않습니다.

패치는 로컬 컨텐츠와 함께 동기화하여 적용할 수 있습니다.

패치와 동기화하려면 다음을 수행하십시오.

  1. 팀 동기화 퍼스펙티브에서 동기화() 단추 드롭 다운에서 동기화... 조치를 선택하십시오.
  2. 가능한 동기화 유형 목록에서 패치와 동기화를 선택하고 다음을 클릭하십시오.
  3. 패치를 찾을 위치를 표시하십시오.
    1. 파일 - 패치가 로컬 파일 시스템의 파일에 있습니다. 파일의 전체 경로를 입력하거나 찾아보기... 단추를 사용하여 파일을 찾으십시오.
    2. 클립보드 - 패치가 클립보드에 있습니다. 경고: 파일 기반 패치를 사용하는 것이 안전합니다. 클립보드를 사용할 때 패치가 Linux 및 Windows와 같이 서로 다른 플랫폼에서 생성된 경우에는 행 종료가 적절하게 처리되지 않을 수 있습니다.
    3. URL - 제공된 URL에 패치가 있습니다. 경고: 입력한 URL이 유효하고 적절한 패치가 포함되었는지 확인하십시오. 그렇지 않으면 패치를 적용할 수 없습니다. 또한 URL에서 직접 패치를 적용하면 시간이 걸릴 수 있습니다.
    4. 작업공간 - 작업공간 내 특정 위치에 패치가 저장됩니다.
    다음을 클릭하여 패치 적용 결과를 확인하십시오.
  4. 선택적 단계: 이 단계는 패치 루트가 프로젝트 또는 선택 레벨인 경우에만 적용됩니다. 작업공간 루트 패치는 자동으로 패치 미리보기 페이지로 진행됩니다. 패치 대상 스펙 페이지에서, 패치 루트 기능을 수행할 자원을 선택해야 합니다.
  5. 선택적 설정: 해당 패치가 액세스할 수 없는 프로젝트를 참조하는 경우에만 이 단계를 적용합니다. 패치의 모든 프로젝트가 작업공간에서 열려 있으면 이 페이지를 건너뜁니다. 액세스할 수 없는 프로젝트 페이지에서 처리완료된 프로젝트를 열 수 있습니다. 또한 존재하지 않는 프로젝트에 대한 세부사항이 표시됩니다. 처리완료되었거나 작업공간에 없는 프로젝트를 패치할 수 없습니다.
  6. 최종 페이지에서 패치 변경사항을 미리 보려면 완료를 클릭하십시오.

패치 적용 옵션

패치 파일의 올바른 일치를 가져오기 위해 다음 옵션을 사용할 수 있습니다.
  1. 패치 적용 마법사의 첫 번째 페이지로 되돌아가서 패치를 적용해야 하는 올바른 자원을 선택하십시오.
  2. 패치 파일에 저장된 경로 이름의 공통 접두부가 현재 작업공간의 경로 이름과 일치하지 않으면 앞에 오는 경로 이름 세그먼트 무시를 수행할 수 있습니다.
  3. 공백 무시 단추를 사용하여 작업공간의 패치 파일 간에 공백 차이를 무시하고 일치 프로세스를 수행하십시오.
  4. 퍼즈 요인(패치 용어)을 조정하십시오. 이 요인은 무시할 헝크 컨텍스트 행 수를 표시합니다. 퍼즈 요인 값이 0인 경우 모든 행이 일치해야 합니다. 퍼즈 요인이 0보다 크면(예: 2) 헝크 앞 처음 2개의 컨텍스트 행과 헝크 뒤 마지막 2개의 컨텍스트 행은 무시됩니다 . 가장 많은 헝크가 일치되도록 하는 퍼즈 요인을 계산하려면 추측을 클릭하십시오.
  5. 작업공간에 이미 적용된 패치 파일에 대해 역 패치 옵션을 사용하십시오. 이 옵션은 패치를 실행 취소하거나 다시 실행할 때도 유용합니다.
  6. 작업공간 패치의 경우, 패치 변경사항을 적용할 작업공간의 다른 프로젝트를 선택할 수 있습니다. 이를 수행하려면 맨 위 분할창에서 프로젝트를 선택한 후 컨텍스트 메뉴에서 이동을 선택하십시오. 이 단추를 클릭하면 작업공간에서 사용 가능한 모든 프로젝트 목록으로 대화상자가 실행됩니다. 프로젝트를 선택하고 확인을 클릭하십시오. 선택한 프로젝트에 패치 변경사항이 적용됩니다.
  7. 제외 표시 옵션을 사용하여 패치에 포함되지 않도록 선택한 헝크를 표시하십시오.
  8. 패치와 동기화 시 위의 옵션이 동기화 보기의 풀다운 메뉴에서 사용 가능합니다. 또한 사용 가능한 모델 간에 전환하여 적용 중인 변경사항에 대한 별도의 정보를 가져올 수 있습니다.

관련 개념
CVS를 사용하여 팀 프로그래밍

관련 태스크
자원 비교
저장소와 동기화

관련 참조
CVS