서브버전 SVN에서 리포지토리의 설정을 변경하는 방법은?
_____A1: SVN 리포지토리 설정은 리포지토리 동작 방식에 영향을 주는 구성 옵션들을 의미합니다. 예를 들어, hook 스크립트, 리비전 번호 관리, 접근 제어, 자동 속성(auto-props) 설정 등이 포함됩니다.
---
Q2: SVN 리포지토리 설정은 어디에 저장되어 있나요?
A2: 리포지토리를 생성한 서버의 리포지토리 폴더 내에 `conf` 디렉터리 안에 설정 파일들이 저장되어 있습니다. 주요 설정 파일은 다음과 같습니다.
- `svnserve.conf` : SVN서버 데몬 설정
- `passwd` : 사용자 및 암호 관리
- `authz` : 접근 권한 관리
- `hooks` 디렉터리 : 커밋 시 자동 실행되는 스크립트
---
Q3: 리포지토리 설정을 변경하려면 어떻게 해야 하나요?
A3:
1. 리포지토리가 위치한 서버에 접근합니다.
2. 리포지토리 폴더 내부의 `conf` 디렉터리로 이동합니다.
3. 원하는 설정 파일(`svnserve.conf`, `passwd`, `authz`)을 편집기(예: vi, nano)로 엽니다.
4. 설정 내용을 변경 후 저장합니다.
5. 만약 서버가 `svnserve` 데몬을 사용 중이라면 변경 사항 적용을 위해 해당 데몬을 재시작하거나 재로드할 수 있습니다.
6. `hooks` 스크립트는 `hooks` 폴더 내에 존재하며, 파일 권한 및 실행 권한 설정을 확인하고 수정합니다.
---
Q4: 주요 설정 파일들의 역할과 자주 변경하는 설정은 무엇인가요?
A4:
- `svnserve.conf`
- 익명 접근 허용, 인증 방식 설정 등 서버 동작 방식 지정
- 예: `[general] anon-access = read` (익명 읽기 허용), `auth-access = write` (인증 시 쓰기 권한)
- `passwd`
- 사용자명과 암호를 저장
- 형식: `username = password`
- `authz`
- 사용자 및 그룹별 경로 접근 권한을 설정
- 형식:
```
[groups]
devs = alice,bob
[/project1]
@devs = rw
* = r
```
- `hooks`
- 사용 시 실행 권한 부여 필요(`chmod +x pre-commit`)
---
Q5: svnserve.conf 예시 설정 변경 방법
A5:
`svnserve.conf` 파일 편집 예시:
```
[general]
anon-access = none 익명 사용자는 접근 금지
auth-access = write 인증 사용자는 쓰기 권한 가능
password-db = passwd passwd 파일 내 사용자 인증 사용
realm = MyRepository 리포지토리 명시
```
변경 후 저장하고 `svnserve` 서버가 실행 중이라면 재시작 필요.
---
Q6: Apache(httpd)와 연동한 SVN 리포지토리 설정 변경은 어떻게 하나요?
A6:
1. Apache의 `httpd.conf` 또는 `svn.conf` 내 SVN 관련 설정 변경
2. 리포지토리 경로, 접근 인증, 권한 설정을 Apache 설정 파일에서 조정
3. Apache 재시작(`apachectl restart`) 필요
4. 리포지토리 내 `authz` 파일로 세밀한 접근 권한 관리 가능
---
Q7: 설정 변경 시 주의사항은 무엇인가요?
A7:
- 설정 파일 수정 전 백업 생성
- 텍스트 인코딩 및 줄바꿈 형식 준수
- 권한 및 소유자 확인 (`hooks` 스크립트의 실행 권한 포함)
- 서버 프로세스 재시작이 필요할 수 있으니 운영 환경에 맞춰 계획
- 잘못된 설정은 인증 실패, 접근 차단 등을 유발하니 주의
---
요약
- 리포지토리 설정 변경은 서버 내 해당 리포지토리 `conf` 디렉터리 내 파일들을 편집하여 수행
- 주요 설정 파일은 `svnserve.conf`, `passwd`, `authz`, 그리고 `hooks` 스크립트
- 변경 후 서버 재시작 혹은 리로드 필요할 수 있음
- Apache 연동 시 Web 서버 설정 또한 함께 변경 관리 필요
이상으로 SVN 리포지토리 설정 변경 방법에 대한 FAQ 답변입니다.
아래에 일반적인 방법을 설명하겠습니다.
1. 리포지토리 설정 파일 수정 리포지토리의 설정 파일인 `svnserve.conf` 또는 `authz` 파일을 수정하여 접근 권한 및 기타 설정을 변경할 수 있습니다.
- svnserve.conf : 이 파일은 리포지토리의 접근 조정 및 인증에 관련된 설정을 포함합니다.
예를 들어, 접근 권한을 설정하거나 익명 사용자 접근을 허용할 수 있습니다.
```bash cd /path/to/repository/conf nano svnserve.conf ``` - `[general]` 섹션에서 `anon-access`, `auth-access`, 그리고 `password-db` 등의 설정을 변경할 수 있습니다.
- authz : 이 파일은 사용자의 권한을 세부적으로 설정하는 데 사용됩니다.
특정 사용자 또는 그룹이 특정 경로에 대한 접근을 허용하거나 차단할 수 있습니다.
```bash cd /path/to/repository/conf nano authz ```
2. 일반적인 설정 변경 - 리포지토리 구조 변경 : 특정 경로를 추가하거나 삭제하고 싶다면, 기존 파일 및 디렉토리를 SVN 클라이언트를 사용하여 추가하거나 삭제하면 됩니다.
- 리포지토리 복제 / 마이그레이션 : 새로운 설정을 원하면 기존 리포지토리를 복제하거나 다른 서버로 마이그레이션할 수 있습니다.
3. 사용자 추가 및 삭제 사용자 인증 정보를 추가하거나 제거하려면, 패스워드 데이터베이스가 설정된 경우 해당 파일을 수정합니다.
예를 들어, `passwd` 파일에 사용자 이름과 비밀번호를 추가할 수 있습니다.
```bash cd /path/to/repository/conf nano passwd ```
4. 서버 설정 변경 SVN 서버가 운영되고 있다면, 서버 자체의 설정도 변경할 수 있습니다.
`svnserve`를 서비스로 실행하는 경우, 서비스의 설정 파일을 변경하고 서버를 재시작해야 합니다.
5. SVNAdmin 사용 리포지토리의 구조나 콘텐츠 상태를 변경하기 위해 `svnadmin` 도구를 사용할 수 있습니다.
예를 들어, 리포지토리의 백업을 생성하거나, 리포지토리를 복원하는 데 사용됩니다.
- 리포지토리 백업 : ```bash svnadmin dump /path/to/repository > repository_dump.svn ``` - 리포지토리 복원 : ```bash svnadmin load /path/to/new_repository < repository_dump.svn ``` 주의사항 - 직접 설정 파일을 수정하기 전에 항상 백업을 만들어두는 것이 좋습니다.
- 설정을 변경한 후에는 반드시 적절하게 테스트하여 변경사항이 의도한 대로 작동하는지 확인해야 합니다.
이러한 방법을 통해 SVN 리포지토리의 설정을 변경할 수 있습니다.
각 설정 파일의 문서화된 규격을 참고하여 변경 사항을 적용하는 것이 중요합니다.
작성자:
김도현 [비회원]
| 작성일자: 1년 전
2025-03-21 15:51:28
조회수: 235 | 댓글: 0 | 좋아요: 0 | 싫어요: 0
조회수: 235 | 댓글: 0 | 좋아요: 0 | 싫어요: 0
내용이 부정확하다면 싫어요를 클릭해주세요.