Linux 설치는 SVN을 구성하고 후크를 설정합니다.

Linux 설치는 SVN을 구성하고 후크를 설정합니다.

설치 참고 사항

시스템 환경: CentOS
설치 방법: yum install (소스코드 설치 시 버전 호환성 문제 발생)
설치 소프트웨어: 시스템에서 자동으로 SVN 소프트웨어 다운로드

설치된 버전 확인

#检查是否安装了低版本的SVN
rpm -qa subversion

#卸载旧版本SVN
yum remove subversion

1. SVN 설치

yum -y install subversion

설치 확인

설치된 SVN 버전 정보 확인

svnserve --version

코드 라이브러리 생성
SVN 소프트웨어 설치가 완료되었습니다. SVN 라이브러리를 생성해야 합니다.

mkdir -p /www/svndata  #创建仓库目录
svnadmin create /www/svndata/test  #创建项目仓库,test是自己的仓库名称

위의 명령을 실행하면 svndata 라이브러리가 자동으로 설정됩니다./www/svndata/test 폴더를 확인하고 conf, db, format, hooks, locks, README.txt 및 기타 파일이 포함되어 있는지 확인하여 SVN 라이브러리가 있음을 나타냅니다. 설립되었습니다.

코드 라이브러리 구성
구성을 위해 위에서 생성한 폴더 conf를 입력하십시오(뒤에 #이 없는 모든 코드는 공백이 아니어야 합니다. 그렇지 않으면 다음 메시지가 표시됩니다: 인증 구성이 유효하지 않음)

cd /www/svndata/test/conf

사용자 비밀번호 passwd 구성

vim passwd

passwd를 다음과 같이 수정합니다.

[users]
#harry = harryssecret
#sally = sallyssecret
cy=123456

권한 제어 authz 구성

vim authz

목적은 어떤 사용자가 어떤 디렉토리에 액세스할 수 있는지 설정하고 authz 파일에 다음을 추가하는 것입니다.

#Setting [/]은 루트 디렉터리의 모든 리소스를 나타냅니다.

[/]
cy=rw

서비스 svnserve.conf 구성

vim svnserve.conf

다음을 추가합니다.

[general]
#匿名访问的权限,可以是read,write,none,默认为read
anon-access=none
#使授权用户有写权限
auth-access=write
#密码数据库的路径
password-db=passwd
#访问控制文件
authz-db=authz
#认证命名空间,subversion会在认证提示里显示,并且作为凭证缓存的关键字
realm = My First Repository

svn 시작

svnserve -d -r /www/svndata

SVN 프로세스 보기

[root@localhost conf]# ps -ef|grep svn|grep -v grep
root     12538     1  0 14:40 ?        00:00:00 svnserve -d -r /www/svndata

SVN 포트 감지

[root@localhost conf]# netstat -ln |grep 3690
tcp        0      0 0.0.0.0:3690                0.0.0.0:*                   LISTEN

svn 재시작 중지

[root@localhost password]# killall svnserve    //停止
[root@localhost password]# svnserve -d -r /www/svndata // 启动

시험

SVN 서비스가 시작되었습니다. 클라이언트를 사용하여 연결을 테스트하십시오.
클라이언트 연결 주소: svn://xxx.xxx.xxx.xxx/test
사용자 이름/비밀번호: cy/123456
폴더 생성과 같은 테스트 작업.

2. 훅을 자동으로 업데이트하도록 설정하여
SVN과 WEB 사이의 동기화를 실현합니다.하나를 CO로 내보내거나 웹 디렉토리를 자동으로 업데이트하는 방법을 직접 사용할 수 있습니다.우리는 svn 버전 라이브러리에서 훅을 구성해야 달성할 수 있습니다. 커밋 후 구성 파일을 만드는 것입니다. 구성하기만 하면 간단한 4단계로 Linux에서 SVN의 웹 디렉터리 구성을 자동으로 업데이트할 수 있습니다.
1단계: 웹 프로그램 디렉토리 생성

mkdir /www/wwwroot/test

생성한 웹 프로그램 디렉토리를 입력하십시오(svn checkout은 co로 축약될 수 있음).

svn checkout svn://localhost/svntest //不重命名文件夹,直接在当前目录下检出
svn checkout svn://localhost/svntest test //检出文件并且重命名文件夹

2단계: 프로젝트 라이브러리 [후크 스크립트]의 hooks/ 디렉터리에 커밋 후 새 파일 생성

다음과 같이 스크립트 내용을 추가합니다.

export LANG=en_US.UTF-8
SVN=/usr/bin/svn            #这里配置的是svn安装bin目录下的svn文件
WEB=/www/wwwroot/test      #要更新的目录
$SVN update $WEB --username cy --password 123456
chown -R 777  $WEB         #设置目录权限

그 중 SVN = 오른쪽을 svn 명령 위치로 변경
WEB = 오른쪽을 실제 웹 디렉토리로 변경
참고: 새로운 커밋 후 파일인 경우 헤드에 #!/bin/sh를 추가해야 합니다.

3단계: 커밋 후 실행 권한 부여

chmod a+x post-commit

4단계: 여기에서 완료되었으며 4단계는 테스트하는 것입니다.

설명:
export LANG=en_US.UTF-8은 내 시스템이 UTF8 인코딩이기 때문에 svn 포스트 커밋 중국어 왜곡된 문자를 해결하고 현지화 인코딩을 설정하는 것입니다. 실제로 인코딩이 GBK인 경우 SVN은 UTF-8 인코딩으로 기본 설정됩니다. 설정하지 않으면 오류가 발생했고 실행에 실패했습니다. 오류는 다음과 같이 식별됩니다.

svn: Can't convert string from native encoding to 'GBK'

명령줄에서 수동으로 업데이트 작업을 수행하려면

/usr/bin/svn update -- username cy -- password 123456 /www/wwwroot/test 

프롬프트가 표시되면:

출력이 없는 커밋 후 후크 실패(종료 코드 255) 커밋 후
파일 실행 권한 부여
기본 인코딩이 UTF-8인 경우 중국어 파일을 업로드하려면 먼저 파일을 제출하기 전에 UTF-8 형식으로 저장하십시오.

일반적인 svn 명령:

退回到指定版本:svn log -l 版本号 -v
svn 更新到指定版本:svn up -r 版本号  //版本号不带r
##svn up -r 只是回退当前版本,如果重新执行svn up,则又回到最新的版本

추천

출처blog.csdn.net/OpasPolice/article/details/118385365