#更改主机名
sed -i '2d' /etc/sysconfig/network
sed -i '1a HOSTNAME=svn' /etc/sysconfig/network
#安装svn
yum -y install subversion
#yum安装rpm包安装后本地不清楚的方法
sed -i 's#keepcache=0#keepcache=1#g' /etc/yum.conf #rpm包下载不清除
#可以查看svnserver命令帮助,了解相关参数
#svnserve --help
#用法: svnserve [-d | -i | -t | -X] [options]
#有效选项:
# -d [--daemon] : 后台模式
# -r [--root] ARG : 服务的根目录
# --pid-file ARG : 写进程 PID 到文件 ARG
#配置并启动svn
#建立svn版本库数据存储根目录(svndata)及用户、密码权限目录(svnpasswd)
mkdir -p /usr/local/svn
mkdir -p /usr/local/svn/svndata
mkdir -p /usr/local/svn/svnpasswd
svnserve -d -r /usr/local/svn/svndata
#ps -elf | grep svn
#netstat -tulnp | grep 3690
#lsof -i :3690
#建立项目版本库
#创建一个新的Subverion项目sadoc,其实,类似sadoc这样的项目可以创建多个,每个项目对应不同的代码,这里只是以创建一个项目为例演示:
#svnadmin help
#svnadmin help create
svnadmin create /usr/local/svn/svndata/sadoc
#tree /usr/local/svn/svndata/sadoc
#调整svn配置文件及权限文件
#配置允许用户wsyht读写访问
cd /usr/local/svn/svndata/sadoc/conf/
/bin/cp svnserve.conf svnserve.conf.$(date +%F)
sed -i '11a anon-access = none' svnserve.conf
sed -i '13a auth-access = write' svnserve.conf
sed -i '22a password-db = /usr/local/svn/svnpasswd/passwd' svnserve.conf
sed -i '30a authz-db = /usr/local/svn/svnpasswd/authz' svnserve.conf
#diff svnserve.conf svnserve.conf.2015-12-31
#egrep "\-access|\-db" svnserve.conf
cp passwd authz /usr/local/svn/svnpasswd/
chmod 700 /usr/local/svn/svnpasswd/*
sed -i '8a wsyht = wsyht123' /usr/local/svn/svnpasswd/passwd
sed -i '8a peter = peter123' /usr/local/svn/svnpasswd/passwd
sed -i '8a jack = jack123' /usr/local/svn/svnpasswd/passwd
sed -i '8a docker = docker123' /usr/local/svn/svnpasswd/passwd
#提示
#1、等号前为svn账号,等号后为svn密码,密码是明文的,注意密码权限
#2、更改svnserve.conf时,需要重起svn,更改authz,passwd文件时不需要重起svn服务
sed -i '32a sagroup = jack,docker' /usr/local/svn/svnpasswd/authz
sed -i '33a [sadoc:/]' /usr/local/svn/svnpasswd/authz
sed -i '34a wsyht = rw' /usr/local/svn/svnpasswd/authz
sed -i '35a peter = r' /usr/local/svn/svnpasswd/authz
sed -i '36a @sagroup =r' /usr/local/svn/svnpasswd/authz
#注意:
# * 权限配置文件中出现的用户名必须已在用户配置文件中定义
# * 对权限配置文件的修改立即生效,不必重启svn
#用户组格式:
#[groups]
#= ,
#其中,1个用户组可以包含1个或多个用户,用户间以逗号分隔
##版本库目录格式:
#[<版本库>:/项目/目录]
#@<用户组名> = <权限>
#<用户名> = <权限>
#其中,方框号内部可以有多种写法:
#[/],表示根目录及以下,根目录是svnserve启动时指定的,我们指定为/usr/local/svn/svndata,[/]就是表示对全部版本库设置权限
#[repos:/]表示对版本库repos设置权限;
#[repos:/sadoc]表示对版本库repos中的sadoc项目设置权限;
#[repos:/sadoc/wsyht]表示对版本库中的sadoc项目的wsyht目录设置权限;
#权权限主体可以是用户组、用户或*,用户组在前面加@,*表示全部用户
#权限可以是w、r、wr和空,空表示没有任何权限
#authz中每个参数都要顶格写,开头不能有空格
#对于组,要以@开头,用户不需要@开头。
#重启svn
#kill -USR1 `cat/usr/local/svn/svndata/svn.pid`
#svnserve -d -r /usr/local/svn/svndata --pid-file=/usr/local/svn/svndata/svn.pid
pkill svnserve
svnserve -d -r /usr/local/svn/svndata
#ps -ef | grep svn
#客户端软件TortoiseSVN
#进入:
#thunder://QUFodHRwOi8veGlhemFpLnhpYXphaWJhLmNvbS9Tb2Z0L1QvVG9ydG9pc2VTVk5fMS45LjEuMjY3X3g2NF9YaWFaYWlCYS56aXBaWg==
#安装过程,一路向北
#SVN客户端连接服务器的方式,账号及密码:
#svn://192.168.1.106/sadoc
#用户名:wsyht
#密码:wsyht123
#linux命令行用法
法1
#mkdir /svndata
#svn co svn://192.168.1.106/sadoc /svndata --username=wsyht --password=wsyht123 #co下载更新
#svn update /svndata --username=wsyht --password=wsyht123 #第二次下载不用输入ip,直接update,先co再update
法2 ->下载到本地
#cd /svndata
#svn co file:///usr/local/svndata/sadoc
查看版本库下的内容
#svn ls svn://192.168.1.106/sadoc --username=wsyht --password=wsyht123
#svn list svn://192.168.1.106/sadoc --username=wsyht --password=wsyht123
#svn ls svn://192.168.1.106/sadoc --username=wsyht --password=wsyht123 --verbose
#svn ls file:///usr/local/svn/svndata/sadoc
#svn list file:///usr/local/svn/svndata/sadoc
#从Linux服务器本地提交数据到SVN
#cd /usr/local/svn/svndata/
#touch {a..g}
#svn add a b c d e f g
#svn ci -m "svn ci data" #提交数数
#导入svn原始目录
#/cd /usr/local/svn/svndata
#mkdir -p /svn/trunk /svn/branch /svn/tag
#svn import /svn file:///usr/local/svn/svndata/sadoc -m "import"
#svn copy命令
#svn copy svn://192.168.1.106/sadoc/trunk svn://192.168.1.106/sadoc/branch/branch_cms_110329 -m "create a branch by wsyht modifiy" --username=wsyht --password=wsyht123