1、SVN管家SVN备份恢复同步存储等日常管理svn存储结构SVN管家、SVN备份恢复&同步存储等日常管理、svn存储结构SVN管家(linux版本)项目由 admin 于 星期二, 02/14/2012 - 17:36 发表项目讨论区 SVN管家是SVN俱乐部的基于apache+svn研发的产品,该产品只要安装apache就可运行。 SVN管家 有用户注册,用户中心(包含用户修改密码,用户查看自己权限等),管理中心(创建、删除版本库,创建用户、修改用户密码,设置用户权限,基于版本库级和基 于目录级的权限设置,版本库备份与恢复,计划备份等等功能)。程序下载:svn管家(linux版本)2.1安装方
2、法:1. 首先你得在你的机器上配置好apache和svn,注意要配置成多库的方式,建议使用YUM安装,你的linux要支持中文.可以参考文档进行配置:svn_apache_yum_安装配置;2. 解压安装包:svngj2.x.tar.gz; tar xzvf svngj2.x.tar.gz chown -R apache:apache svngj2.13. 把目录svngj_cgi拷贝到apache的cgi-bin目录里,并把目录svngj_cgi重命名为svngj; cp -pr svngj_cgi /var/www/cgi-bin/ mv /var/www/cgi-bin/svngj_cg
3、i /var/www/cgi-bin/svngj4. 把目录svngj_html拷贝到apache的html(htdocs)目录,并把目录svngj_html重命名为svngj; cp -pr svngj_html /var/www/html mv /var/www/html/svngj_html /var/www/html/svngj5. 配置svn管家的配置文件/var/www/cgi-bin/svngj/svngj.conf里的httpdconf(apache的配置文件),svnadmin(svn的管理命令); httpdconf=/etc/httpd/conf/httpd.conf s
4、vnadmin=/usr/bin/svnadmin6. 把svn管家的文件的所属用户改成apache运行的用户,让apache用户可读写该目录; chown -R apache.apache /var/www/cgi-bin/svngj chown -R apache.apache /var/www/html/svngj7. 把svn的用户文件和权限文件的所属用户改成apache运行的用户; chown apache.apache/svn/userfile chown apache.apache/svn/accessfile8. 配置完毕,现在您可以通过http:/ip/svngj来访问svn
5、管家了.另外,文件/var/www/html/svngj/index.html件只是起引导作用,否则,比如你访问注册页面时,需输入:http:/ip/cgi-bin/svngj/register.html.附: 所用到的apache配置文件里(比如:/etc/httpd/conf/httpd.conf)的对应项解读: 1)apache的cgi-bin目录 ScriptAlias /cgi-bin/ /var/www/cgi-bin/ 2)apache的html目录 DocumentRoot /var/www/html 3)apache运行的用户和用户组 User apache Group ap
6、ache 4)svn的管理命令svnadmin 如果是yum安装的话,通常是:/usr/bin/svnadmin,源码安装的在svn安装目录的bin目录下面.系统支持: Apache2.2+,Subversion1.6+,centos5.x, other linux。初始管理员帐号:admin/admin测试入口: SVN管家(Windows版本)项目由 admin 于 星期五, 06/03/2011 - 13:42 发表项目讨论区SVN管家是SVN俱乐部的基于apache+svn研发的产品,该产品只要安装apache就可运行。SVN管家 有用户注册,用户中心(包含用户修改密码,用户查看自己权
7、限等),管理中心(创建、删除版本库,创建用户、修改用户密码,设置用户权限,基于版本库级和基于目录级的权限设置,版本库备份与恢复,计划备份等等功能),还可以自动在线升级。安装方法(安装过程中遇到任何问题请联系:QQ:1474770592;email:svnclub):注意:如果您是安装VisualSVN Server的(svn管家需V2.3以上版本),请先参考文档“SVN管家与VisualSVN Server完美结合”。1. 首先你得在你的机器上配置好apache和svn,注意要配置成多库的方式。可以参考安装包里的文档进行配置:svn和apache的安装与配置.txt;2. 将当前目录下的压缩包
8、:svn管家_Win_V1.0.rar 解压到apache2.2的安装目录,我这里apache的安装路径是:C:Program FilesApache Software FoundationApache2.2;3. 解压缩时会提示是否覆盖已存在的index.html,选择“是”。这个主要是为了方便访问(URL不用输很长),没有其它作用;4. 确保SVN的安装路径的bin路径在环境变量里头,否则SVN管家的一些功能会不起作用。我这里SVN的bin路径是:C:Program FilesSubversionbin;环境变量查看(设置):右键“我的电脑”属性高级环境变量系统变量Path5. 在浏览器里
9、输入:http:/ip就进入到 svn管家了,现在就可以正式用了!程序下载:svn管家版本下载地址升级内容2.3下载1、与VisualSVN Server完美结合;2、修改若干读取权限文件的BUG。 2.2下载1、完全支持中文目录权限设置。在管理后台点击“权限管理”系统会自动将权限控制文件转为UTF-8无bom格式,不再需要借助EditPlus、UltraEdit等编辑器转换。 2.1下载1、增加用户备注功能,提高帐号的辨识度,利于管理员进行管理;2、增加注册用户自定制设置;3.支持中文目录权限设置;4.修改登陆首页,增加网页直接登陆svn服务器功能。 2.0下载1、增加注册用户功能;2、支持
10、Windows7系统;3、修复若干BUG。 系统支持:Apache2.2+,Subversion1.6+,Windows2000/2003/XP。 初始管理员帐号:admin/admin页面浏览:svn管家首页:用户注册页面:用户登陆页面:用户中心:管理员登陆页面:管理中心: SVN备份恢复 同步存储等日常管理 svn存储结构#ls /svn/Repository/conf dav db format hooks locks注解:conf 包含库配置文件的目录;dav 提供给Apache和mod_dav_svn使用db 版本数据存储目录format 存储一个整数的文件,此整数代表库层次结构版本
11、hooks 版本库勾子版本locks 存储库锁目录,用来跟踪库的访问者db目录下fs-type目录不能删除,记录库的存储系统;而revprops目录记录版本属性;revs才是版本存储的实际目录;uuid为库的唯一标识号;txn-current记录当前事务;所有这些目录中,db、format、locks、fs-type、revs、uuid、revprops目录及文件必须完整才能正常显示版本,如果revs中的版本意外删除,可以从hot-copy备份库中直接拷贝过来而不会损坏数据;也可以从镜像库拷贝恢复(实际操作中还是有数据损坏,镜像库和源库中还是有些许差异); 其中revs下面是以目录组织的版本结
12、构,如./0,./0/1 ./0/2 ./0/3 ,每1000个版本组成一个目录,每个版本自成一个文件,文件名即为commit后生成的版本号;即使删除掉部分版本也不会影响版本库的读取和显示;但是基础版本丢失会使版本库无法访问; 备份svn存储库#压缩备份 svnadmin dump /home/workhome/svn/repository | gzip /repository-backup.gz #不压缩备份 svnadmin dump /home/workhome/svn/repository /repository-backup.svn 恢复svn存储库#建立新的svn存储库 svnad
13、min create /home/workhome/svn/newrepository #确认成功与否 ls -l /home/workhome/svn/newrepository #导入存储库数据 svnadmin load /home/workhome/svn/newrepository &2 exit 1 Step 3: 让镜像版本库使用同步用户修改修订版本属性为此,我们需要创建一个pre-revprop-change(MIRROR_REPO_PATH/hooks下)钩子,类似于下面的例子,也是shell脚本: #!/bin/sh USER=”$3 if “$USER” = “svnsy
14、nc” ; then exit 0; fi echo “Only the syncuser user may change revision properties as this is a read-only, mirror repository.” &2 exit 1 Step 4: 注册同步的镜像版本库在任何平台使用下面的svnsync命令: svnsync initialize URL_TO_MIRROR_REPO URL_TO_MASTER_REPO -username=svnsync -password=svnsyncpassword 如果所有的配置正确,你一定会看到下面的输出: C
15、opied properties for revision 0. 现在你已经注册了镜像版本库与主版本库的同步,我们必须继续执行初始的同步,这样镜像版本库才和主版本库是一样的了。 Step 5: 执行初始同步为了确定所有事情已经准备好了,并且执行初始同步,在任何系统只需要执行: svnsync synchronize URL_TO_MIRROR_REPO -username=svnsync -password=svnsyncpassword 如果所有的同步正确,你会看到类似的输出: Committed revision 1. Copied properties for revision 1. C
16、ommitted revision 2. Copied properties for revision 2. Committed revision 3. Copied properties for revision 3. Step 6: 使用post-commit(MASTER_REPO_PATH/hooks下)钩子自动同步根据初始同步的输出,我们现在要做的就是写一个定时执行或post-commit钩子来同步镜像版本库,我建议post-commit,因为它让你的镜像版本库尽可能的最新,下面是可以用在主版本库上同步镜像版本库的post-commit钩子,一个shell脚本: # Example
17、for synchronizing one repository from the post-commit hook #!/bin/sh svnsync synchronize URL_TO_MIRROR_REPO -username=svnsync -password=svnsyncpassword & exit 0 注:上述钩子脚本需用 chmod 755 使之可运行。 TortoiseSVN使用 svn版本还原1.推荐的一种方法是,直接export一个你需要的版本,然后用你export的版本覆盖你的最新的版本,这样你就可以不丢失你新建的文件,同时获得最新的SVN版本控制。操作步骤:Tor
18、toiseSVNShow log选中需要回滚的版本右键Export。之后将修改的文件覆盖到你的最新版本,commit即可。 2. 若是你编辑了工程,在没有提交的前提下,你想放弃这些修改,你可以直接选择TortoiseSVNrevert就可以更新到工程的最新的版本。 3. 若是你想退回到某一个版本,你就可以直接选择TortoiseSVNupdate to reversion,这样我们就可以把我们的版本回退到你选中的版本去,这种情况下SVN并没有显示出有什么冲突,并且新建立的文件也还在,但是在这种情况下你并不能直接在你回退后的版本上进行编辑,因为SVN的版本控制还是在最新的主干上。我们需要update并解决冲突。 4.你可以直接选择revert changes from this revision,这样的话你可以直接解决冲突并提交。不过这种方法的不足是,你新建的文件都没有了,整个工程都回退到之前的版本了。 5.可以从日志中回滚到你需要的版本,从日志中选中你需要的版本,然后Update item to reversion就好了,这种情况下SVN并没有显示出有什么冲突,并且新建立的文件也还在,但是在这种情况下你并不能直接在你回退后的版本上进行编辑,因为SVN的版本控制还是在最新的主干上。我们需要update并解决冲突。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1