1、下载、解压subversion: cd ~ wget http://apache.fayea.com/subversion/subversion-1.9.3.tar.gz tar zxvf subversion-1.9.3.tar.gz 2、安装subversion需要sqlite的支持,所以先下载sqlite: wget http://www.sqlite.org/snapshot/sqlite-amalgamation-201511301915.zip unzip sqlite-amalgamation-201511301915.zip -d ~/sqlite-amalgamation mv ~/sqlite-amalgamation ~/subversion-1.9.3 cd subversion-1.9.3 3、编译、安装subversion: ./configure --prefix=/usr/local/subversion -with-apxs=/usr/local/apache2/bin/apxs --with-apr=/usr/local/apr --with-apr-util=/root/apr-util-1.5.4/ --with-zlib make && make install 4、将svn的操作命令放至/usr/bin下: ln -f -s /usr/local/subversion/bin/svn* /usr/bin 使用svnserve --version来查看subversion的版本,如果显示的是1.9.3表示安装成功 5、为了方便以后操作,把svn的安装目录加入到环境变量: 在/etc/profile结尾加上svn的环境变量: echo -e 'export PATH=/usr/local/subversion/bin:$PATH\n' >> /etc/profile && source /etc/profile 6、安装成功,创建版本库: mkdir -p /svn/repos #创建版本库目录,repos目录名可以自定义 svnadmin create /svn/repos #创建版本 7、修改版本库控制: 编辑/svn/repos/conf/svnserve.conf,内容修改为: [general] anon-access = none auth-access = write password-db = passwd #用户密码文件 authz-db = authz #授权登录文件 PS.所有代码前面不能用别的字符,空格也不可以。 8、添加版本库访问的用户: 编辑/svn/repos/conf/authz,添加group和用户: [groups] admin = test [/] @admin = rw ### 注意: ### * 权限配置文件中出现的用户名必须已在用户配置文件中定义。 ### * 对权限配置文件的修改立即生效,不必重启svn。 ### 用户组格式: ### [groups] ### = , ### 其中,1个用户组可以包含1个或多个用户,用户间以逗号分隔。 ### 版本库目录格式: ### [<版本库>:/项目/目录] ### @<用户组名> = <权限> ### <用户名> = <权限> ### 其中,方框号内部分可以有多种写法: ### [/],表示根目录及以下,根目录是svnserve启动时指定的,我们指定为/home/svndata,[/]就是表示对全部版本库设置权限。 ### [repos:/] 表示对版本库repos设置权限; ### [repos:/abc] 表示对版本库repos中的abc项目设置权限; ### [repos:/abc/aaa] 表示对版本库repos中的abc项目的aaa目录设置权限; ### 权限主体可以是用户组、用户或*,用户组在前面加@,*表示全部用户。 ### 权限可以是w、r、wr和空,空表示没有任何权限。 9、添加用户对应的密码: 编辑/svn/repos/conf/passwd,设置用户的密码: [users] test = test 这样,就设定了一个用户名和密码都是test的具有读写权限的账户。 10、启动SVN: /usr/local/subversion/bin/svnserve -d --listen-port 8888 -r /svn ###-d :表示以daemon方式(后台运行)运行; ###--listen-port 9999 :表示使用9999端口,可以换成你需要的端口。但注意,使用1024以下的端口需要root权限; ###-r /home/svndata :指定根目录是/svn 11、将SVN添加到开机启动: echo -e '/usr/local/subversion/bin/svnserve -d --listen-port 8888 -r /svn\n' >> /etc/rc.local 如果想要停止SVN,可用以下命令: killall svnserve 客户端使用svn导出、上传这些就不在此记录了,如果需要将别的svn版本库导入到新的svn版本库中,需要进行如下操作: 2.1、将需要移动的版本库完整地导出为一个单独文件: svnadmin dump local_old_repositories_path > dumpfile_path PS.导出来的文件是二进制格式,一般的非二进制处理方式的文档编辑器打开、保存后,会破坏格式,导致后续导入时某些提交校验出错。如果仅是完整移动版本库,则不需要编辑dump文件,直接在后面load导入即可。但是想修改其中的字段,建议使用WinHex以16进制方式编辑。 2.2、重新创建一个新的版本库: svnadmin create new_repositories_path 2.3、将之前的dump文件导入到新的版本库: svnadmin load new_repositories_path < dumpfile_path 2.4、其他操作 svndumpfilter 该命令用于过滤dump文件中的某些文件夹,以得到所需要的工程文件。在我们当前版本库中还不需要这个操作。 经以上操作,已将旧版本库导入到新版本库的目录下。经对比验证,新库跟旧版本库工程内容完全一致,操作成功! (责任编辑:IT) |