一、服务端配置
准备目录mkdir -p /application/svndatamkdir -p /application/svnpasswd
启动服务时指定数据存储目录
svnserve -d -r /application/svndatapkill svnserve #关闭svn,用于改变配置文件后的重启
查看服务是否启动(3种方法)
ps -ef | grep svnnetstat -tunlp | grep 3690lsof -i :3690
创建版本库'sadoc',不能直接用mkdir创建这个目录
svnadmin create /application/svndata/sadoc
权限配置
cd /application/svndata/sadoc/confcp svnserve.conf svnserve.conf.ori #备份初始配置文件
vim svnserve.conf #编辑配置文件,改完后要重启服务
anon-access = none #禁止匿名访问auth-access = writepassword-db = /application/svnpasswd/passwd #用户名和密码的数据库统一放到/application/svnpasswd目录下管理authz-db = /application/svnpasswd/authz #权限控制文件也一样
提供用户名密码和权限的配置文件到自定义的目录(复制默认的,然后修改)
cp passwd authz /application/svnpasswd/cd /application/svnpasswdchmod 700 *
vim passwd #修改用户密码文件,改完立即生效
[users]z@q.com = z123l@q.com = l123
vim authz #修改权限控制文件,改完立即生效,这里的用户一定要在passwd文件中有定义
sbgroup = z@q.com,l@q.com #定义一个用户组[sadoc:/] #定位到版本库sadoc根目录,然后设置它的权限z@q.com = rw #控制单个用户的权限l@q.com = r@sbgroup = r #控制用户组的权限二、客户端使用方式 1.在windows上安装客户端(区分32和64) 访问uri: svn://172.16.0.1/sadoc 在本地任意目录右击-->SVN Checkout-->填写访问uri-->填写用户名密码(到这里就说明配置成功了)
%APPDATA%\Subversion\auth 保存用户认证信息的缺省目录
2.也可以在linux上安装客户端mkdir /svndatacd /svndatasvn co file:///application/svndata/sadoc #从本地svn服务上Checkout
或者
svn co svn://172.16.0.1/sadoc /wwwroot/html --username=z@q.com --password=z123
可能会遇到中文问题,调整字符集:
export LC_CTYPE='en_US.UTF-8'export LC_ALL=
查看指定仓库中的数据:
svn ls svn://172.16.0.1/sadoc --username=z@q.com --password=z123 --verbose
三、在checkout到的本地目录中的操作
查看当前目录中文件状态:
svn status -v /wwwroot/html
第一列:【?:不在svn的控制中;M:内容被修改;C:发生冲突;A:预定加入到版本库;K:被锁定】
第二列:显示工作版本号, 第三列:显示最后一次修改的版本号 第四列:显示修改人显示指定版本号内的提交记录(-l 5可以指定最近提交,提交记录太多的时候有用):
svn log -r 263:300 /wwwroot/html查看当前目录所属的svn仓库元信息(URL,Repository Root,Repository UUID,Revision,Last Changed Author等):
svn info
列出目录下被svn跟踪的文件和目录:
svn list
打包一个干净的目录树,与svn co相同但不包含.svn目录或文件:
svn export svn://172.16.0.1/sadoc /wwwroot/html
在指定目录(如果后面没有跟目录参数,默认将当前目录以及子目录下的所有文件都更新到最新版本,有-r就是回滚):
svn up $filename 更新指定文件svn up –r 200 file.c –m “update the version to 200” 把本地的版本还原到200
四、svn服务迁移
假设svn服务要从10.0.0.10迁移到172.16.1.10
先在10.0.0.10上备份svn数据
svnadmin dump /application/svndata/sadoc|gzip >sadoc-backup.gz
然后去172.16.1.10搭建好svn服务,并导入svn备份数据(假设新建的仓库目录是 /application/svndata/sadoc )
gunzip sadoc-backup.gzsvnadmin load /application/svndata/sadoc
创建代码目录,并checkout
mkdir /wwwroot/htmlcd /wwwroot/htmlsvn co file:///application/svndata/sadoc ./svn up .svn info
如果10.0.0.10上的 /wwwroot/html 目录中有部分文件没有加入svn版本,还需要手动把文件同步到172.16.1.10一次,要注意排除原来的.svn文件
rsync -avzP --exclude=.svn/ root@10.0.0.10:/wwwroot/html/ ./