주요 콘텐츠

SVN 소스 컨트롤 설정하기

MATLAB®에서 Subversion®(SVN) 소스 컨트롤을 사용하여 파일을 관리하고 다른 사용자와 협업할 수 있습니다. 자세한 내용은 Work with Files Under SVN in MATLAB 항목을 참조하십시오.

SVN을 사용하기에 앞서 다음 단계에 따라 MATLAB에 대해 SVN을 설정하십시오.

  • (권장) 표준 SVN 리포지토리 구조를 사용합니다.

  • (모든 시스템에 필수) 파일 손상을 방지하기 위해 SVN에 이진 파일을 등록합니다.

  • (선택 사항) 편집 전에 파일에 강제 잠금을 설정합니다.

표준 SVN 리포지토리 구조 사용하기

표준 tags, trunk, branches 폴더를 사용하여 리포지토리를 만들고 trunk에서 파일을 체크아웃하십시오. Subversion 프로젝트에서는 이 리포지토리 구조를 사용하는 것이 권장됩니다. 자세한 내용은 https://svn.apache.org/repos/asf/subversion/trunk/doc/user/svn-best-practices.html을 참조하십시오.

SVN에 이진 파일 등록하기

타사 소스 컨트롤 툴을 사용하는 경우, .mlx, .mat, .fig, .mlapp, .mdl, .slx, .mdlp, .slxp, .sldd.p와 같은 MATLAB 및 Simulink® 파일 확장자를 이진 형식으로 등록해야 합니다. 또한 .mexa64, .mexmaci64, .mexmaca64, .mexw64와 같은 MEX 파일의 확장자도 등록합니다. 확장자를 등록하지 않으면, 라인 끝(EOL) 문자 변경, 토큰 확장, 키워드 대체, 또는 자동 병합 시도 등을 통해 파일을 제출할 때 이러한 툴이 파일을 손상시킬 수 있습니다. MATLAB 외부에서 소스 컨트롤 툴을 사용하는 경우나 먼저 파일 형식을 등록하지 않은 채로 MATLAB에서 파일을 제출하려고 하는 경우에 손상이 발생할 수 있습니다.

또한 체크인 작업 중 손상을 방지하기 위해 .xlsx, .jpg, .pdf.docx와 같은 다른 파일 확장자도 이진 형식으로 등록합니다.

MATLAB에서 제공되는 내장 SVN 연동을 포함하여 임의의 버전의 SVN을 사용하는 경우 이진 파일을 등록해야 합니다. 확장자를 이진 형식으로 등록하지 않는 경우, SVN은 충돌이 난 MATLAB 파일에 주석을 추가하고 자동 병합을 시도할 수 있습니다. SVN을 사용 시 이 문제를 방지하려면 다음과 같이 파일 확장자를 등록하십시오.

  1. SVN config 파일을 찾도록 합니다. 다음 위치에서 파일을 찾습니다.

    • Windows®C:\Users\myusername\AppData\Roaming\Subversion\config 또는 C:\Documents and Settings\myusername\Application Data\Subversion\config

    • Linux® 또는 macOS~/.subversion

  2. SVN config 파일을 찾을 수 없는 경우 SVN config(구성) 파일 생성하기 섹션의 단계에 따라 새로 만듭니다.

  3. 기존 SVN config 파일이 있다면 이전에 SVN을 설치했다는 것입니다. 기존 SVN config(구성) 파일 업데이트하기 섹션의 단계에 따라 config 파일을 편집합니다.

SVN config(구성) 파일 생성하기

  1. SVN config 파일이 없는 경우 다음 라인이 포함된 텍스트 파일을 만듭니다.

    [miscellany]
    enable-auto-props = yes
    [auto-props]
    *.mlx = svn:mime-type=application/octet-stream
    *.mat = svn:mime-type=application/octet-stream
    *.fig = svn:mime-type=application/octet-stream
    *.mdl = svn:mime-type=application/octet-stream
    *.slx = svn:mime-type=application/octet-stream
    *.mlapp = svn:mime-type=application/octet-stream
    *.p = svn:mime-type=application/octet-stream
    *.mdlp = svn:mime-type=application/octet-stream
    *.slxp = svn:mime-type=application/octet-stream
    *.sldd = svn:mime-type=application/octet-stream
    *.slxc = svn:mime-type=application/octet-stream
    *.mlproj = svn:mime-type=application/octet-stream
    *.mldatx = svn:mime-type=application/octet-stream
    *.slreqx = svn:mime-type=application/octet-stream
    *.sfx = svn:mime-type=application/octet-stream
    *.sltx = svn:mime-type=application/octet-stream
  2. 체크인 시 손상 방지를 위해 이진 형식으로 등록해야 하는, 사용 중인 다른 파일 형식이 있는지 확인합니다. MEX 파일(.mexa64, .mexmaci64, .mexw64), .xlsx, .jpg, .pdf, .docx 등의 파일이 있는지 확인합니다. 필요한 각 파일 형식에 대한 라인을 config 파일에 추가합니다. 예제:

    *.mexa64 = svn:mime-type=application/octet-stream
    *.mexw64 = svn:mime-type=application/octet-stream
    *.mexmaci64 = svn:mime-type=application/octet-stream
    *.xlsx = svn:mime-type=application/octet-stream
    *.docx = svn:mime-type=application/octet-stream
    *.pdf = svn:mime-type=application/octet-stream
    *.jpg = svn:mime-type=application/octet-stream
    *.png = svn:mime-type=application/octet-stream
  3. 파일 이름을 config로 지정하고 이 파일을 적절한 위치에 저장합니다.

    • Windows – C:\Users\myusername\AppData\Roaming\Subversion\config 또는 C:\Documents and Settings\myusername\Application Data\Subversion\config

    • Linux 또는 macOS~/.subversion

SVN config 파일을 만들고 나면 SVN은 이 확장자를 가진 파일을 이진 형식으로 취급합니다. 리포지토리에 이미 이진 파일이 있는 경우 리포지토리에 이미 있는 파일 등록하기 항목을 참조하십시오.

기존 SVN config(구성) 파일 업데이트하기

기존 SVN config 파일이 있다면 이전에 SVN을 설치했다는 것입니다. 파일을 이진 형식으로 등록하려면 config 파일을 편집하십시오.

  1. 텍스트 편집기에서 SVN config 파일을 편집합니다.

  2. [miscellany] 섹션을 찾아 이 라인이 yes로 설정되어 auto-props를 활성화하는지 확인합니다.

    enable-auto-props = yes 
    # 문자로 시작하는 라인은 주석 처리되었음을 나타내므로 이 라인이 이 문자로 시작하지 않도록 하십시오. 이 라인이 # 문자로 시작하는 경우 이 문자를 삭제합니다.

  3. [auto-props] 섹션을 찾습니다. [auto-props] 섹션이 # 문자로 시작하지 않도록 합니다. 이 섹션이 # 문자로 시작하는 경우 이 문자를 삭제합니다.

  4. [auto-props] 섹션 끝에 다음 라인을 추가합니다.

    *.mlx = svn:mime-type=application/octet-stream
    *.mat = svn:mime-type=application/octet-stream
    *.fig = svn:mime-type=application/octet-stream
    *.mdl = svn:mime-type=application/octet-stream
    *.slx = svn:mime-type= application/octet-stream
    *.mlapp = svn:mime-type= application/octet-stream
    *.p = svn:mime-type=application/octet-stream
    *.mdlp = svn:mime-type=application/octet-stream
    *.slxp = svn:mime-type=application/octet-stream
    *.sldd = svn:mime-type=application/octet-stream
    *.slxc = svn:mime-type=application/octet-stream
    *.mlproj = svn:mime-type=application/octet-stream
    *.mldatx = svn:mime-type=application/octet-stream
    *.slreqx = svn:mime-type=application/octet-stream
    *.sfx = svn:mime-type=application/octet-stream
    *.sltx = svn:mime-type=application/octet-stream
    
    이러한 라인을 추가하면 SVN이 충돌한 MATLAB 파일과 Simulink 파일에 주석을 추가하지 않으며 자동 병합을 수행하지 않습니다.

  5. 체크인 시 손상 방지를 위해 이진 형식으로 등록해야 하는, 사용 중인 다른 파일 형식이 있는지 확인합니다. MEX 파일(.mexa64, .mexmaci64, .mexw64), .xlsx, .jpg, .pdf, .docx 등의 파일이 있는지 확인합니다. 사용하는 각 파일 형식에 대한 라인을 config 파일에 추가합니다. 예를 들어, 다음 라인을 추가합니다.

    *.mexa64 = svn:mime-type=application/octet-stream
    *.mexw64 = svn:mime-type=application/octet-stream
    *.mexmaci64 = svn:mime-type=application/octet-stream
    *.xlsx = svn:mime-type=application/octet-stream
    *.docx = svn:mime-type=application/octet-stream
    *.pdf = svn:mime-type=application/octet-stream
    *.jpg = svn:mime-type=application/octet-stream
    *.png = svn:mime-type=application/octet-stream
  6. config 파일을 저장합니다.

SVN config 파일을 만들거나 업데이트하고 나면 SVN이 새 파일을 이진 형식으로 취급합니다. 리포지토리에 이미 파일이 있는 경우 리포지토리에 이미 있는 파일 등록하기에서 설명된 대로 파일을 등록하십시오.

리포지토리에 이미 있는 파일 등록하기

SVN config 파일을 변경해도 SVN 리포지토리로 이미 커밋된 파일에는 영향을 미치지 않습니다. 기존 파일이 이진 형식으로 등록되어 있지 않으면 커맨드 라인 SVN에서 svn propset을 사용하여 수동으로 파일을 이진 형식으로 등록하십시오.

svn propset svn:mime-type application/octet-stream binaryfilename

파일 편집 전에 강제 잠금 설정하기

특정 확장자를 가진 파일을 읽기 전용으로 만들도록 SVN을 구성할 수 있습니다. 읽기 전용 파일을 편집하려면 먼저 파일을 잠가야 합니다. 파일이 잠겨 있으면 이 파일이 편집 중임을 다른 사용자가 알 수 있으므로 병합 문제를 방지할 수 있습니다.

파일에 강제로 잠금을 설정하려면 SVN config 파일의 항목을 수정하십시오. SVN config 파일이 있는 위치를 찾으려면 SVN에 이진 파일 등록하기 항목을 참조하십시오.

  1. 확장자가 .m인 파일을 읽기 전용으로 만들려면 [auto-props] 섹션에서 SVN config 파일에 속성을 추가하십시오. 확장자가 .m인 파일에 대한 항목이 없으면 needs-lock 속성이 포함된 항목을 새로 추가하십시오.

    *.m = svn:needs-lock=yes

    이 항목이 있으면 속성을 어떤 순서로든 함께 지정할 수 있지만, 여러 항목을 세미콜론으로 구분하여 한 라인에 지정해야 합니다.

  2. 확장자가 .mlx인 파일을 읽기 전용으로 만들려면 [auto-props] 섹션에서 SVN config 파일에 속성을 추가하십시오. 확장자가 .mlx인 파일을 이진 형식으로 등록해야 하므로, 파일 형식에 대한 항목이 있어야 합니다. 한 라인에 세미콜론으로 구분하여 항목에 needs-lock 속성을 원하는 순서로 추가하십시오.

    *.mlx = svn:mime-type=application/octet-stream;svn:needs-lock=yes 
  3. 구성이 적용되도록 작업 폴더를 다시 만듭니다.

파일 잠금을 적용하면 사용자가 파일을 편집하려면 파일에 잠금을 설정해야 합니다. 자세한 내용은 SVN 파일 잠그기 항목을 참조하십시오.

Subversion 리포지토리 공유하기

Subversion 리포지토리를 공유하려면 Apache™ SVN 모듈을 사용하여 서버를 설정하십시오. 자세한 내용은 https://svnbook.red-bean.com/en/1.7/svn-book.html#svn.serverconfig.httpd 항목을 참조하십시오.

참고

  • 프로덕션 환경에서는 file:/// protocol을 사용하여 파일 시스템을 통해 원격 리포지토리를 사용하지 마십시오. 파일 프로토콜은 안전하지 않습니다. 동시 액세스가 리포지토리를 손상시킬 수 있습니다.

  • MATLAB에서는 svn+ssh:// protocol을 사용하여 원격 리포지토리와 상호 작용할 수 없습니다.

참고 항목

도움말 항목