
SVN 주석 기능은 매우 강력하며 특정 코드 줄에서 특정 기능을 추적할 사람을 빠르게 추적할 수 있습니다. 사용자가 http를 통해 SVN에 액세스하는 경우 이 기능은 약간 더 제한되지만 여전히 유용합니다. 이 방법으로 교환된 자격 증명이 없으므로 http를 사용하여 변경 사항을 커밋하는 개발자가 수정한 줄의 이름이 주석에 표시되지 않습니다.
문제는 개발자가 커밋을 고유하게 식별하기 위해 일종의 자격 증명을 서버의 SVN에 전달할 수 있는 방법이 있느냐는 것입니다. 이 환경에서는 단지 ID가 필요합니다. svn+ssh 및 파일 프로토콜과 같은 대체 방법은 사용할 수 없습니다. 마지막으로 이 서버는 공용이 아닌 내부 LAN에 있습니다. https에 대한 팁도 환영합니다.
SVN 서버는 Apache2가 설치된 Linux에서 실행됩니다.
답변1
아파치 구성에서:
<Location /svn>
DAV svn
SVNPath /mnt/big/svn
AuthType Basic
AuthName "SVN Server"
AuthUserFile /etc/apache2/svn.pass
Require valid-user
AuthzSVNAccessFile /etc/apache2/svn_authz
/etc/apache2/svn_authz에는 누가 무엇에 액세스할 수 있는지에 대한 세부적인 관리가 포함될 수 있습니다.
[groups]
ops=user1,user2
it=user2,user3
[/]
* = rw
[/ops]
* =
@ops=rw
[/ro]
* =
@ops = r
@it = r
user4 = rw
LDAP/Active Directory 서버가 있으면 Apache 인증을 위해 AuthUserFile 대신 이를 사용할 수 있습니다.
답변2
Apache를 통해 SVN을 실행하고 있으므로 Apache에 내장된 인증 방법을 활용하여 저장소에 대한 액세스를 제어하고 변경 사항을 추적할 수 있습니다. 아래 샘플은 htaccess 스타일 설정에서 작동합니다.
AuthType Basic
AuthName "Subversion Repository"
AuthUserFile /path/to/user/list
Require valid-user
htaccess 파일이나 VirtualHost 구성 파일에서 이를 구성할 수 있습니다.
답변3
짧은 답변:mod_authz_svn
apache + svn + mod_autz_svn에 대한 내용과 International PHP Conference '09에서 발표된 내 슬라이드에서 더 많은 정보를 얻을 수 있습니다.http://superalbert.it/download/misc/PHPCon09_SVN_advanced.pdf
답변4
이 답변에서는 개발자가 Windows를 사용하고 Active Directory 도메인 컨트롤러를 가지고 있다고 가정합니다.
다음을 수행하여 Linux svn 서버를 도메인에 가입시킬 수 있습니다.기사.
여기에서 Kerberos를 사용하여 AD에 인증하도록 Apache를 구성합니다. 첫 번째 설치mod_auth_kerb, 인증을 위해 apache2를 kerberos에 연결합니다. Microsoft의 내용을 참조하세요.문서화. 클라이언트와 서버 간의 보안이 걱정된다면 SSL을 구현하십시오.
완료되면 사용자는 Windows 비밀번호로 로그인할 수 있으며 활동이 해당 사용자에게 할당됩니다.
안타깝게도 제가 사무실에 없고 svn 서버에 액세스할 수 없기 때문에 지금 당장은 구체적인 구성 세부정보를 알려드릴 수 없습니다.