로컬 버전 관리 서비스
Parent page: 고급 주제
Enterprise Server 설치에는 Version Control 서비스가 포함되어 있어, 로컬(및 중앙집중식) 버전 관리를 제공합니다. 이 서비스는 외부 VCS 관리 소프트웨어를 찾아다니거나 비용을 지불하지 않고도, 필요한 곳에서 바로 로컬로 버전 관리를 사용할 수 있게 해줍니다.
이처럼 중앙집중식으로 설계 리포지토리를 정의하면, 조직은 디자이너가 어떤 리포지토리에 접근하고 사용할 수 있는지 완전히 제어할 수 있습니다.
주요 장점
이 중앙집중식 Version Control 서비스를 사용할 때의 핵심 장점은 두 가지입니다.
- Altium Designer와 SVN 모두에 대해 공통 사용자 및 권한 관리를 사용할 수 있습니다. Enterprise Server에 로그인하면 Version Control 서비스는 해당 세션/자격 증명으로 동작합니다.
- Enterprise Server를 통해 정의된 리포지토리(Enterprise Server Workspace의 브라우저 기반 인터페이스의 VCS 페이지(Admin – VCS)에서 정의)는 로그인 시 Altium Designer로 자동으로 반영되므로, 사용자는 URL, 프로토콜, 비밀번호 등을 신경 쓸 필요가 없습니다. Enterprise Server에서 한 번만 구성해두면, 필요에 따라 대상 사용자에게 공유됩니다.
리포지토리 생성
리포지토리는 로컬 Version Control 서비스(SVN 전용)를 통해 생성할 수 있으며, 또는 외부 리포지토리(SVN 또는 Git)에 연결할 수 있습니다. 모든 리포지토리는 Workspace 브라우저 기반 인터페이스의 VCS 페이지(Admin – VCS)에서 다음 항목 관점으로 중앙에서 함께 관리됩니다.
- 표시 이름, 설명, 리포지토리 경로.
- 접근성 설정 – 어떤 특정 사용자가 접근할 수 있는지(또는 로컬 Version Control 서비스로 정의된 리포지토리의 경우 역할).
- 가용성 – 개별 디자이너가 각각 리포지토리를 생성하고 연결할 필요 없이, 중앙에서 추가/제거.
Altium Designer 사용자가 Workspace에 로그인하면, 해당 사용자에게 제공되는 Design Repository가 Data Management – Design Repositories page의 Preferences 대화상자에 자동으로 추가됩니다. 또한 이 목록에는 Preferences 페이지에서 수동으로 추가된 ‘관리되지 않는(unmanaged)’ 리포지토리도 포함됩니다.
조직의 Design Repository에 대한 접근을 중앙에서 정의하십시오. 리포지토리는 로컬 Version Control 서비스를 사용해 Enterprise Server 설치 내부에 둘 수도 있고, Altium Designer 내장 SVN 또는 타사 SVN/Git 서비스를 통해 외부로 둘 수도 있습니다. 접근 제어는 Workspace 브라우저 기반 인터페이스의 VCS page에서 수행됩니다. 사용자가 Workspace에 로그인하면, 해당 사용자에게 제공되는 Design Repository가 Data Management – Design Repositories 페이지의 Preferences dialog에 자동으로 추가됩니다.
리포지토리 추가
Design Repository를 추가하려면 페이지 오른쪽 상단에 있는
버튼을 클릭합니다. Add Repository 창이 나타나며, 여기에서 리포지토리를 정의합니다.
필요한 속성은 로컬 Version Control 서비스를 사용해 새 리포지토리를 생성하는지, 또는 기존 외부 리포지토리에 연결하는지에 따라 달라집니다.
- New – 리포지토리 이름과 설명을 지정합니다.
- Existing – 이름과 설명 외에도, 리포지토리에 대한 URL 및 해당 리포지토리에 접근하기 위한 유효한 자격 증명(User Name, Password)(필요한 경우)을 제공해야 합니다.
Enterprise Server의 로컬 Version Control 서비스를 통해 새 SVN 기반 Design Repository를 생성하거나, Enterprise Server 외부에서 생성된 기존 리포지토리(SVN 또는 Git)에 연결하십시오.
연결된 외부 Design Repository는 리포지토리 목록에서 External 속성이 체크됨으로써 구분됩니다.
나중에 Design Repository의 속성을 편집하려면 해당 Edit 컨트롤을 클릭합니다. Design Repository를 제거하려면 해당 Remove 컨트롤을 클릭합니다.
리포지토리 공유
Design Repository를 중앙집중식으로 구성했다면, 특정 리포지토리에 접근해야 하는 사용자(보드 설계를 수행할 디자이너 포함)가 실제로 접근할 수 있도록 해야 합니다. 이는 해당 리포지토리를 공유, 즉 접근 권한을 관리함으로써 달성됩니다. 이를 위해 리포지토리에 연결된 Share 컨트롤을 클릭합니다.
필요한 모든 공유 컨트롤이 포함된 Manage Permissions 창이 나타납니다.
Design Repository가 중앙에서 정리되어 있으면, 다른 사용자와의 공유는 각 리포지토리의 권한을 관리하는 것만으로 간단히 처리됩니다.
유의 사항:
- Enterprise Server의 Version Control 서비스(즉, 외부가 아님)를 통해 생성된 로컬 리포지토리의 기본 권한은, 리포지토리를 생성한 사용자와 Administrators 역할에 해당 리포지토리를 공유합니다. 이 둘은 모두 전체 읽기/쓰기(Read/Write) 권한을 가집니다.
- 외부 리포지토리는 기본적으로 누구와도 공유되지 않습니다. 인터페이스를 통해 연결을 추가한 사용자조차도 기본 공유 대상이 아닙니다.
- 로컬 리포지토리(외부가 아님)만 Enterprise Server에 정의된 역할 그룹 또는 공개로 공유할 수 있습니다. 역할은 개별 사용자 뒤에 나열됩니다.
- 권한 측면에서, 사용자/역할은 Can Write 옵션이 활성화되어 있을 때 읽기/쓰기(Read/Write) 권한을 가집니다. 이 옵션이 비활성화되어 있으면 읽기(Read) 전용 권한만 가집니다.
- 기존 사용자/역할의 리포지토리 공유 접근을 제거하려면 해당 Remove 컨트롤을 클릭합니다.
Sharing a Local Repository with a Workspace User
로컬(외부가 아닌) 리포지토리를 다른 Workspace 사용자와 공유하려면:
- Manage Permissions 창에서 Add User 컨트롤을 클릭합니다.

- 표시되는 Add Users 창에서 Select Users to be added 필드에 Workspace 사용자의 전체 이름, 사용자명 또는 이메일 주소를 입력하기 시작하면, 일치하는 사용자 목록이 팝업으로 표시됩니다. 이 목록에서 필요한 사용자를 선택합니다. 여러 사용자를 선택할 수 있습니다. 사용자를 제거하려면 이름 오른쪽의 삭제(×)를 클릭합니다.

- Permission 필드를 사용해 사용자(들)의 권한을 설정합니다. 드롭다운에서 Read 접근 또는 Read/Write 접근 중에서 선택합니다.

-
버튼을 클릭하여 사용자 추가를 확정하고 Manage Permissions 창으로 돌아갑니다.

- Manage Permissions 창에서
버튼을 클릭합니다.
Sharing a Local Repository with a defined Role Group
리포지토리가 외부 리포지토리가 아니라 로컬 Version Control 서비스로 생성된 경우, Workspace에 정의된 역할 그룹(Role group)과 공유할 수도 있습니다. 로컬(외부가 아닌) 리포지토리를 다른 역할 그룹과 공유하려면 다음을 수행합니다:
- Add Group 창에서 Manage Permissions 창의 Add Group 컨트롤을 클릭합니다.

- 표시되는 Add Groups 창에서 Select Groups to be added 필드에 역할 그룹 이름을 입력하기 시작하면, 일치하는 역할 목록이 팝업으로 표시됩니다. 이 목록에서 필요한 역할을 선택합니다. 여러 역할을 선택할 수 있습니다. 역할을 제거하려면 해당 이름 오른쪽의 삭제(×)를 클릭합니다.

- Permission 필드를 사용해 역할 그룹의 권한을 설정합니다. 드롭다운에서 Read 액세스 또는 Read/Write 액세스를 선택합니다.

-
버튼을 클릭하여 역할 추가를 확인하고 Manage Permissions 창으로 돌아갑니다.

- Manage Permissions 창에서
버튼을 클릭합니다.
Sharing a Local Repository with All Users
리포지토리가 외부 리포지토리가 아니라 로컬 Version Control 서비스로 생성된 경우, 해당 리포지토리를 모든 Workspace 사용자와 공유할 수도 있습니다. Workspace에 로그인할 수 있는 누구와도 로컬(외부가 아닌) 리포지토리를 공유하려면 다음을 수행합니다:
- Add Anyone 창에서 Manage Permissions 창의 Add Anyone 컨트롤을 클릭합니다.

- Anyone 항목이 공유 엔터티 목록에 바로 추가되며, 자동으로 Read/Write 액세스로 공유됩니다.

- Manage Permissions 창에서
버튼을 클릭합니다.
Sharing an External Repository with a Workspace User
외부 리포지토리를 Workspace 사용자와 공유하려면 다음을 수행합니다:
- Add User 창에서 Manage Permissions 창의 Add User 컨트롤을 클릭합니다.

- 표시되는 Add Users 창에서 Select Users to be added 필드에 Workspace 사용자의 전체 이름, 사용자 이름 또는 이메일 주소를 입력하기 시작하면, 일치하는 사용자 목록이 팝업으로 표시됩니다. 이 목록에서 필요한 사용자를 선택합니다. 사용자를 제거하려면 해당 이름 오른쪽의 삭제(×)를 클릭합니다.
SVN User 필드에는 외부 리포지토리(SVN 또는 Git)에 등록되어 있어 액세스 권한이 있는 이름을 입력합니다. 일반적으로는 리포지토리에 등록된 사용자 이름과 일치하는 이름입니다.

-
버튼을 클릭하여 사용자 추가를 확인하고 Manage Permissions 창으로 돌아갑니다. 위 2단계에서 설명한 대로 Add User를 클릭하여 사용자를 추가로 더할 수 있습니다. 아래 두 번째 예시 이미지에서는 사용자 Barry가 일반ServerAdmin이름이 아니라, 리포지토리에서의 일치하는 이름BarrySmith를 사용하도록 설정되어 있습니다.

- Manage Permissions 창에서
버튼을 클릭합니다.
로컬 SVN 설계 리포지토리에 대한 외부 액세스
Enterprise Server의 로컬 Version Control Service를 통해 생성된 Design Repository는 TortoiseSVN과 같은 SVN 클라이언트를 사용해 접근할 수 있습니다. 접근은 일반 네트워크 프로토콜(현재는 svn://이(가) 지원됨)을 사용해 이루어집니다. 올바른 리포지토리 주소는 다음 두 위치에서 확인/복사할 수 있습니다:
- Workspace 브라우저 인터페이스의 VCS 페이지 – 대상 리포지토리의 Repository Path 필드에서.
Enterprise Server에서 생성된 ‘내부’ 리포지토리는 Enterprise Server에 대한 상대 경로로 주소가 표시되며, 이는 호스트 PC의 localhost 주소입니다.
- Altium Designer 내에서, Preferences 대화상자의 Data Management – Design Repositories page에서 – 대상 리포지토리의 Repository 필드에서.
Altium Designer(또는 Enterprise Server 호스트 PC에 설치되지 않은 모든 애플리케이션)의 관점에서 리포지토리 주소 경로는 호스트 PC의 이름을 기준으로 합니다.
획득한 주소를 Subversion 클라이언트의 리포지토리 탐색 기능에 사용합니다. 최초 접근 시 유효한 연결 자격 증명을 요청하는 중간 Authentication 대화상자가 열립니다. 계속하려면 Workspace 사용자 계정의 이름과 비밀번호를 입력합니다. 이 자격 증명이 유효하려면 다음 조건을 만족해야 합니다:
- 사용자 계정이 Enterprise Server에서 리포지토리가 생성되기 after 전에 추가되어 있어야 합니다. 생성된 리포지토리에 적용되는 사용자는 Enterprise Server PC의
\ProgramData\Altium\Altium365Data\Repository폴더에 있는passwd파일에서 확인할 수 있습니다(아래 참조). - 서버의 Manage Permissions for <repository name> 창에서 Add User 명령을 통해 해당 사용자 이름을 추가하여 리포지토리가 해당 사용자 계정과 공유되어 있어야 합니다. 이는 Enterprise Server PC의
\ProgramData\Altium\Altium365Data\Repository폴더에 있는 리포지토리의authz파일에서 확인할 수 있습니다.
Enterprise Server 설치의 로컬 SVN 기반 Version Control 서비스로 생성된 Design Repository의 콘텐츠를 탐색하는 모습.
Enterprise Server & VCS 사용자 동기화
Workspace에 새 사용자가 생성되면, 해당 사용자의 정의된 자격 증명(User Name 및 Password)은 Enterprise Server 데이터베이스와 Version Control 서비스 양쪽에 저장됩니다. 이는 Version Control 서비스가 전자의 비밀번호에 직접 접근할 수 없기 때문입니다. 비밀번호는 Version Control 서비스 측에 일반 텍스트 형식(\ProgramData\Altium\Altium365Data\Repository\passwd 파일)에 저장됩니다.
이 목록의 항목은 Altium Designer를 통해 서비스에서 작업할 때 Enterprise Server SVN 리포지토리에 대한 액세스를 제공합니다. Workspace 사용자가 이미 존재한 상태에서 첫 SVN 리포지토리가 생성되는 경우(그 반대가 아니라) 등, 사용자의 자격 증명이 파일에 포함되지 않는 경우가 있을 수 있습니다. 이는 해당 이름/비밀번호 조합을 passwd 파일에 수동으로 추가하거나, Workspace에서 각 사용자 프로필의 비밀번호를 다시 입력함으로써 해결할 수 있습니다. 후자의 방법은 Enterprise Server PC에 직접 접근하지 않고도 passwd 파일을 그에 맞게 채웁니다.
Enterprise Server 기본 설치에서는 Version Control 서비스용 사용자 자격 증명이 연결된 Passwd 파일에 저장됩니다.
리포지토리 삭제
Enterprise Server의 Version Control 서비스에서 리포지토리를 삭제하려면, Workspace 브라우저 기반 인터페이스의 VCS 페이지에서 해당 리포지토리와 연결된 Remove 컨트롤을 클릭합니다.
외부 리포지토리 항목은 리포지토리에 프로젝트가 포함되어 있는지 여부와 관계없이 삭제할 수 있습니다. 반면 로컬 리포지토리(Enterprise Server의 Version Control 서비스로 내부 생성된 리포지토리)는 하나 이상의 프로젝트를 포함하고 있으면 삭제할 수 없습니다. 이 경우 경고가 표시되며, 삭제를 진행하기 전에 먼저 프로젝트를 제거해야 합니다.
그렇더라도 로컬 리포지토리에 프로젝트가 하나도 없으면 실제로 삭제되지는 않고, 아카이브 디렉터리(\ProgramData\Altium\Altium365Data\RepositoryDumps, Enterprise Server 기본 설치 기준)로 이동됩니다. 리포지토리는 고유 ID 접두사가 붙은 Dump 파일(예: 775f6c22-b9a1-468c-9f1f-4f217bb3be6b_central design repository.dump)에 포함됩니다.