当前位置:文档之家› SVN管家、SVN备份恢复&同步存储等日常管理、svn存储结构

SVN管家、SVN备份恢复&同步存储等日常管理、svn存储结构

SVN管家、SVN备份恢复&同步存储等日常管理、svn存储结构
SVN管家、SVN备份恢复&同步存储等日常管理、svn存储结构

SVN管家、SVN备份恢复&同步存储等日常管理、svn存储结构SVN管家(linux版本)项目

由admin 于星期二, 02/14/2012 - 17:36 发表

项目讨论区

SVN管家是SVN俱乐部的基于apache+svn研发的产品,该产品只要安装apache 就可运行。SVN管家有用户注册,用户中心(包含用户修改密码,用户查看自己权限等),管理中心(创建、删除版本库,创建用户、修改用户密码,设置用户权限,基于版本库级和基于目录级的权限设置,版本库备份与恢复,计划备份等等功能)。

程序下载:

svn管家(linux版本)2.1

安装方法:

1. 首先你得在你的机器上配置好apache和svn,注意要配置成多库的方式,建议使用YUM 安装,你的linux要支持中文.可以参考文档进行配置:svn_apache_yum_安装配置;

2. 解压安装包:svngj2.x.tar.gz;

tar xzvf svngj2.x.tar.gz

chown -R apache:apache svngj2.1

3. 把目录svngj_cgi拷贝到apache的cgi-bin目录里,并把目录svngj_cgi重命名为svngj;

cp -pr svngj_cgi /var/www/cgi-bin/

mv /var/www/cgi-bin/svngj_cgi /var/www/cgi-bin/svngj

4. 把目录svngj_html拷贝到apache的html(htdocs)目录,并把目录svngj_html重命名为svngj;

cp -pr svngj_html /var/www/html

mv /var/www/html/svngj_html /var/www/html/svngj

5. 配置svn管家的配置文件/var/www/cgi-bin/svngj/svngj.conf里的httpdconf(apache的配置文件),svnadmin(svn的管理命令);

httpdconf=/etc/httpd/conf/httpd.conf

svnadmin=/usr/bin/svnadmin

6. 把svn管家的文件的所属用户改成apache运行的用户,让apache用户可读写该目录;

chown -R apache.apache /var/www/cgi-bin/svngj

chown -R apache.apache /var/www/html/svngj

7. 把svn的用户文件和权限文件的所属用户改成apache运行的用户;

chown apache.apache/svn/userfile

chown apache.apache/svn/accessfile

8. 配置完毕,现在您可以通过http://ip/svngj来访问svn管家了.另外,文件/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 apache

4)svn的管理命令svnadmin

如果是yum安装的话,通常是:/usr/bin/svnadmin,源码安装的在svn安装目录的bin目录下面.

系统支持:

Apache2.2+,Subversion1.6+,centos5.x, other linux。

初始管理员帐号:

admin/admin

测试入口:

https://www.doczj.com/doc/dc1878077.html,/svngj

SVN管家(Windows版本)项目

由admin 于星期五, 06/03/2011 - 13:42 发表

项目讨论区

SVN管家是SVN俱乐部的基于apache+svn研发的产品,该产品只要安装apache就可运行。SVN管家有用户注册,用户中心(包含用户修改密码,用户查看自己权限等),管理中心(创建、删除版本库,创建用户、修改用户密码,设置用户权限,基于版本库级和基于目录级的权限设置,版本库备份与恢复,计划备份等等功能),还可以自动在线升级。

安装方法(安装过程中遇到任何问题请联系:QQ:1474770592;email:svnclub@https://www.doczj.com/doc/dc1878077.html,):

注意:如果您是安装VisualSVN Server的(svn管家需V2.3以上版本),请先参考文档“SVN管家与VisualSVN Server完美结合”。

1. 首先你得在你的机器上配置好apache和svn,注意要配置成多库的方式。可以参考安装包里的文档进行配置:svn和apache的安装与配置.txt;

2. 将当前目录下的压缩包:svn管家_Win_V1.0.rar 解压到apache2.2的安装目录,我这里

apache的安装路径是:C:\Program Files\Apache Software Foundation\Apache2.2;

3. 解压缩时会提示是否覆盖已存在的index.html,选择“是”。这个主要是为了方便访问(URL不用输很长),没有其它作用;

4. 确保SVN的安装路径的bin路径在环境变量里头,否则SVN管家的一些功能会不起作用。我这里SVN的bin路径是:C:\Program Files\Subversion\bin;

环境变量查看(设置):右键“我的电脑”-属性-高级-环境变量-系统变量-Path

5. 在浏览器里输入: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、支持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 存储一个整数的文件,此整数代表库层次结构版本

hooks 版本库勾子版本

locks 存储库锁目录,用来跟踪库的访问者

db目录下fs-type目录不能删除,记录库的存储系统;而revprops目录记录版本属性;revs 才是版本存储的实际目录;uuid为库的唯一标识号;txn-current记录当前事务;

所有这些目录中,db、format、locks、fs-type、revs、uuid、revprops目录及文件必须完整才能正常显示版本,如果revs中的版本意外删除,可以从hot-copy备份库中直接拷贝过来而不会损坏数据;也可以从镜像库拷贝恢复(实际操作中还是有数据损坏,镜像库和源库中还是有些许差异);

其中revs下面是以目录组织的版本结构,如../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存储库

svnadmin create /home/workhome/svn/newrepository

#确认成功与否

ls -l /home/workhome/svn/newrepository

#导入存储库数据

svnadmin load /home/workhome/svn/newrepository < ~/repository-backup.svn

其他

svnadmin recover —将版本库数据库恢复到稳定状态

svnadmin recover /home/workhome/svn/newrepository

删除存储库中无用的日志文件

svnadmin list-unused-dblogs /home/workhome/svn/newrepository/ | xargs rm -vf

删除存储库中所有剩余的共享内存文件

rm -f /home/workhome/svn/newrepository/db/_db.0*

实现svnsync

实现svnsync的唯一的前提条件是创建一个希望镜像的版本库,一旦创建,你就可以按照下面步骤继续。

Step 1: 创建镜像Repository(要与主Repository名字相同)

svnadmin create MIRROR_REPO_PATH

Step 2: 设置镜像版本库只对同步用户可写

svnsync synchronize -h

synchronize (sync): usage: svnsync synchronize DEST_URL

Transfer all pending revisions to the destination from the source with which it was initialized.

Valid options:

--non-interactive : do no interactive prompting

--no-auth-cache : do not cache authentication tokens

--username ARG : specify a username ARG (deprecated; see --source-username and --sync-username)

--password ARG : specify a password ARG (deprecated; see --source-password and --sync-password)

--source-username ARG : connect to source repository with username ARG

--source-password ARG : connect to source repository with password ARG

--sync-username ARG : connect to sync repository with username ARG

--sync-password ARG : connect to sync repository with password ARG

--config-dir ARG : read user configuration files from directory ARG

-q [--quiet] : print as little as possible

这句意思是不是同步用户可以主Repository和镜像Repository都设成一样。待实践

为了让镜像版本库只被同步用户写,我们的例子里用户名是”svnsync”,我们有一些选项,一个就是使用Subversion的授权功能设置缺省的访问规则:

[/]

* = r

svnsync = rw

另一个选项就是使用start-commit(MIRROR_REPO_PATH/hooks下)检查svnsync用户,下面是一个例子,是shell脚本:

#!/bin/sh

USER=”$2″

if [ “$USER” = “svnsync” ];

then exit 0

fi

echo “Only the syncuser user may commit new revisions as this is a read-only, mirror repository.” >&2

exit 1

Step 3: 让镜像版本库使用同步用户修改修订版本属性

为此,我们需要创建一个pre-revprop-change(MIRROR_REPO_PATH/hooks下)钩子,类似于下面的例子,也是shell脚本:

#!/bin/sh

USER=”$3″

if [ “$USER” = “svnsync” ];

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

如果所有的配置正确,你一定会看到下面的输出:

Copied properties for revision 0.

现在你已经注册了镜像版本库与主版本库的同步,我们必须继续执行初始的同步,这样镜像版本库才和主版本库是一样的了。

Step 5: 执行初始同步

为了确定所有事情已经准备好了,并且执行初始同步,在任何系统只需要执行:

svnsync synchronize URL_TO_MIRROR_REPO --username=svnsync --password=svnsyncpassword

如果所有的同步正确,你会看到类似的输出:

Committed revision 1.

Copied properties for revision 1.

Committed 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 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版本控制。操作步骤:TortoiseSVN→Show log→选中需要回滚的版本→右键→Export。之后将修改的文件覆盖到你的最新版本,commit即可。

2. 若是你编辑了工程,在没有提交的前提下,你想放弃这些修改,你可以直接选择TortoiseSVN→revert就可以更新到工程的最新的版本。

3. 若是你想退回到某一个版本,你就可以直接选择TortoiseSVN→update to reversion,这样我们就可以把我们的版本回退到你选中的版本去,这种情况下SVN并没有显示出有什么冲突,并且新建立的文件也还在,但是在这种情况下你并不能直接在你回退后的版本上进行编辑,因

为SVN的版本控制还是在最新的主干上。我们需要update并解决冲突。 4.你可以直接选择revert changes from this revision,这样的话你可以直接解决冲突并提交。不过这种方法的不足是,你新建的文件都没有了,整个工程都回退到之前的版本了。 5.可以从日志中回滚到你需要的版本,从日志中选中你需要的版本,然后Update item to reversion就好了,这种情况下SVN并没有显示出有什么冲突,并且新建立的文件也还在,但是在这种情况下你并不能直接在你回退后的版本上进行编辑,因为SVN的版本控制还是在最新的主干上。我们需要update并解决冲突。

一个SVN管理多个资料库时的用户权限配置

作为一个配置管理员,需要管理用户的权限,本文主要介绍了使用Subversion的授权文件“authz-db”,同时为了叙述的清晰,我首先澄清一些概念。 认证(Authentication)和授权(Authorization) 这两个术语经常一起出现。其中认证的意思就是鉴别用户的身份,最常见的方式就是使用用户名和密码,授权就是判断用户是否具备某种操作的权限,在Subversion里提供了“authz-db”文件,实现了以路径为基础的授权,也就是判断用户是否有操作对应路径的权限。svnserve下的配置文件 因为本文是以svnserve为例的,所以先介绍一下版本库目录的结构: D:\SVNROOT\PROJECT1 ├─conf ├─dav ├─db │ ├─revprops │ ├─revs │ └─transactions ├─hooks └─locks 其中conf下面有三个文件: authz passwd svnserve.conf 其中的“svnserve.conf”是这个版本库的配置文件,当使用svnserve时,这个配置文件决定了使用什么认证和授权文件: password-db = passwd authz-db = authz 上面的配置说明使用“svnserve.conf”同目录的passwd和authz,其中的password-db指定了用户密码文件,authz-db是我们的授权文件,也就是我们本文主要介绍的文件。 基于svnserve的版本库文件布局 使用svnserve时,为了管理的方便,应该使用相同的认证和授权文件,所以应该让所有版本库的配置文件svnserve.conf指向同一个password-db和authz-db文件。下面是一个多版本库的目录: D:\SVNROOT ├─project1 │ ├─conf │ ├─dav │ ├─db

svn迁移文档

SVN迁移文档 原svn机器详情: 139.224.56.23 svn/tomcat/apache 139.224.65.51 nginx 139.224.46.23 mysql 迁移目标机器: 116.62.56.159 迁移内容: 将svn多台机器所部署的应用迁移到目标机器116.62.56.159,内容包括(svn、tomcat、apache、nginx、mysql) 一、安装SVN(116.62.56.159) 1、SVN版本选择subversion-1.9.4 # tar -zxvf subversion-1.9.4.tar.gz # cd subversion-1.9.4 # ./configure --prefix=/usr/local/subversion # make && make install 2、配置环境变量 PATH=/usr/local/subversion/bin:$PATH export path 二、安装apache(116.62.56.159) 1、apache版本httpd-2.4.23 # tar -zxvf httpd-2.4.23.tar.gz # cd httpd-2.4.23 # ./configure --prefix=/usr/local/apache # make && make install 三、安装nginx(116.62.56.159) 1、nginx版本nginx-1.9.6 # tar -zxvf nginx-1.9.6.tar.gz # cd nginx-1.9.6 # ./configure --prefix=/opt/nginx # make && make install 2、nginx.conf中server设置8888 四、安装mysql(116.62.56.159) 1、mysql版本mysql-5.6.29 # tar -zxvf mysql-5.6.29-linux-glibc2.5-x86_64.tar.gz -d /usr/local/mysql 修改该mysql中的配置文件 # vi /usr/local/mysql/https://www.doczj.com/doc/dc1878077.html,f 启动mysql

Svn在Windows下实现自动全量增量备份和异地备份

SVN在Windows下实现自动全量增量备份和异地备份 1SVN备份介绍 1.1SVN备份内容 SVN在Windows下的自动备份实现,包括: 1)SVN目录的全备份(1周或1个月备份1次,由windows计划来调度执行); 2)SVN增量备份(每日备份1次,由windows计划来调度执行); 1.2SVN备份流程 上述2类备份分别进行的流程如下: 1)通过windows定时任务功能,调度进行备份、压缩、FTP上传功能的bat文件; 2)将自动备份成按每日日期.dmp备份到SVN本机的其他磁盘空间中,分全备份和增量备份;

3)启动ftp上传命令,将备份的rar包立即上传在异地服务器上。异地服务器需提前架好ftp服务器并建立好相关上传目录,建议使用用FileZilla_Server、serverU 或者简单ftp软件进行搭建。 4)整个上传过程,详细记录备份、压缩、FTP上传各步骤详细日志,随时可以查阅每次备份记录的详细情况。 1.3SVN还原功能 可以进行还原所有版本库 2SVN备份BAT设计 1.1全备份BAT 1)SVN的全备份,AllBackUp.bat

:Begin @echo off setlocal enabledelayedexpansion echo 正在准备备份所有版本库…… echo. ::设置SVN命令目录 set SVN_CMD="E:\VisualSVN Server\bin" ::设置所有版本库根目录 set REPOS_ROOT=D:\Repositories ::设置所有版本库备份根目录 set REPOS_BACKUP_ROOT=F:\[SvnBackup]\全备份 if not exist %REPOS_BACKUP_ROOT% mkdir %REPOS_BACKUP_ROOT% ::设置所有版本库备份目录 set BACKUP_DIRECTORY=%REPOS_BACKUP_ROOT%\%date:~0,10%.dmp set BACKUP_DIRECTORY=%BACKUP_DIRECTORY:/=-% rem if exist %BACKUP_DIRECTORY% goto Error2 rem mkdir %BACKUP_DIRECTORY% if not exist %BACKUP_DIRECTORY% mkdir %BACKUP_DIRECTORY% ::设置用户权限信息备份目录 set REPOS_USER_INFO_DIRECTORY=%BACKUP_DIRECTORY%\UserInfo if not exist %REPOS_USER_INFO_DIRECTORY% mkdir %REPOS_USER_INFO_DIRECTORY% ::备份所有版本库 ::i->版本库、j->版本库最新版本号、k->上次完全备份时版本库的版本号 echo ===================%date% %time:~0,8%:执行全部全量备份版本 库.=================== >> %REPOS_BACKUP_ROOT%\BackUp.log echo 备份的版本库版本信息如下: >> %REPOS_BACKUP_ROOT%\BackUp.log ::读取版本库根目录下每个文件夹,并判断其是否是一个版本库 for /r %REPOS_ROOT% %%i in (.) do if exist %%i\conf\svnserve.conf ( ::将当前版本库的最新版本信息写入tmp文件 %SVN_CMD%\svnlook youngest %%~fi > %%~ni_last_revision.tmp ::取出当前版本库的最新版本信息,判断其是否大于0,是则进行处理 for /f %%j in (%%~ni_last_revision.tmp) do if %%j gtr 0 ( echo. echo 开始备份版本库%%~ni…… ::全量备份版本库 %SVN_CMD%\svnadmin dump

SVN管理员使用指南

SVN 管理员使用指南

目录 1Subversion简介 (1) 1.1Subversion简介 (1) 1.2Subversion架构 (2) 1.3Subversion组件 (3) 1.4Subversion基本流程 (3) 2安装SVN 服务 (4) 2.1安装SVN和TortoiseSVN (4) 2.2创建SVN资源库 (4) 2.3创建SVNserver服务 (5) 2.4运行SVNserver服务 (6) 3用户及权限管理 (6) 3.1用户管理 (7) 3.2权限管理 (7) 4SVN基本使用 (9) 4.1导入/导出(import/export) (9) 4.2初始化检出(checkout) (10) 4.3更新修改(update) (10) 4.4查看日志信息(show log) (10) 4.5取消修改(revert) (10) 4.6提交修改(commit) (10) 4.7合并信息(merge) (10) 4.8创建/删除/重命名 (10) 4.9加锁/释放锁(get/release lock) (10) 4.10添加、删除、重命名(add、delete、rename) (10) 4.11拷贝(copy) (13) 4.12查看修改信息(check for modifications) (13) 4.13分支/标记(branch/tag) (13)

4.14创建并应用补丁(create/apply patch) (15) 4.15备份/恢复资源库 (17) 4.16删除资源库 (19) 4.17版本(revision)关键字 (19) 4.18统计信息(statistics) (20) 4.19禁用密码缓存 (21) 5TortoiseSVN设置 (21) 5.1常规设置(General) (23) 5.2图标叠加(Icon overlays) (27) 5.3网络设置(network) (29) 5.4日志缓存设置(log caching) (30) 5.5钩子脚本设置(Hook Scripts) (32) 5.6外部程序设置(external programs) (32) 6TortoiseSVN基本命令 (37) 6.1Svn子命令 (37) 6.2Svnadmin (38) 6.2.1Svnadmin Switches (39) 6.2.2Svnadmin Subcommands (39) 6.3Svnlook (40) 6.3.1Svnlook选项 (40) 6.3.2Svnlook (41) 6.4Svnserve (41) 6.4.1Svnserve选项 (41) 6.5Svnversion (42) 6.5.1Svnversion选项 (42)

通过SVN镜像实现异地备份

一、目的 通过SVN再带工具svnsync来实现版本库的同步,实现异地开发中心版本库向北京中心的实时同步。 二、搭建SVN服务器 异地开发中心SVN服务器已经投入使用,需要在北京本地安装配置SVN 服务器。 以Linux操作系统为例: 1、下载SVN安装所需的软件 sqlite-amalgamation-3.6.13.tar.gz apr-1.2.7.tar.gz apr-util-1.2.7.tar.gz httpd-2.2.13.tar.bz2 subversion-1.6.6.tar.bz2 2、检查SVN是否安装成功 在安装服务器上执行svnadmin命令,是否有相应。 3、在北京中心创建镜像库 #mkdir –p /data/svn //创建SVN库存储目录 #svnadmin create mir //创建镜像库,名字可根据实际调整 #netstat -nltp //如果有3690端口在监听,说明运行成功 4、修改配置文件 #cd /data/svn/mir/conf 将svnserve.conf去掉下面几行的注释: anon-access = read auth-access = write password-db = passwd 注意: 上述三行前面不能留有空格,否则要出错。 5、修改密码文件 修改密码文件passwd,添加账号和密码 三、配置手工同步

1、修改同步文件 #cp pre-revprop-change.tmpl pre-revprop-change #chmod +x pre-revprop-change #chmod 777 pre-revprop-change 2、同步初始化 #svnsync init file:///data/svn/mir/ http://IP(远程地址)/svn/test_dir 此时北京mir库就是远程test_dir库的异地镜像拷贝 3、手工同步 #svnsync sync svn://IP(远程地址) --username username --password password //IP地址、username、password根据实际填写 通过手工同步方式比较麻烦,需要配置自动同步来实现实时自动同步 四、配置实时同步 自动实时同步需要在异地源SVN服务器上进行配置。 #cd /data/svn/test_dir/hooks 该目录有两个重要的文件:pre-commit.tmpl和post-commit.tmpl pre-commit.tmpl:该文件是SVN每次提交之前都要执行的脚本; post-commit.tmpl:该文件是SVN每次提交之后执行的脚本。 此时我们若将同步命令svnsync init file:///data/svn/mir/ http://IP(北京地址)/svn/test_dir写入上述2个脚本中的一个,显然就可以达到实时同步的目的了。 建议:最好将svnsync init file:///data/svn/mir/ http://IP(北京地 址)/svn/test_dir写入post-commit脚本里,而非pre-commit中,如果写入 pre-commit中,是每次提交前同步,显然镜像库会比源库一直会落后一个版本。 #cp post-commit.tmpl post-commit #chmod +x post-commit #chmod 777 post-commit 文件内容如下: # cat post-commit #!/bin/sh

SVN权限控制解析

SVN权限控制解析 作为一个配置管理员,需要管理用户的权限,本文主要介绍了如何使用Subversion的授权文件“authz-db”,同时为了叙述的清晰,我首先澄清一些概念。 1、认证(Authentication)和授权(Authorization) 这两个术语经常一起出现。其中认证的意思就是鉴别用户的身份,最常见的方式就是使用用户名和密码,授权就是判断用户是否具备某种操作的权限,在Subversion里提供了“authz-db”文件,实现了以路径为基础的授权,也就是判断用户是否有操作对应路径的权限,在Subversion 1.3之后,svnserve和Apache一样都可以使用“authz-db”文件。 2、svnserve下的配置文件 因为本文是以svnserve为例的,所以先介绍一下版本库目录的结构: 其中conf下面有三个文件: 其中的“svnserve.conf”是这个版本库的配置文件,当使用svnserve时,

上面的配置说明: 1、匿名用户的权限为none(可以为none、read、write) 2、认证用户的权限为write(可以为none、read、write。SVN的权限 认证方式是基于此处的设置和anthz授权文件中的设置,两者都满足 (&方式)才成立,即 read&read=read,read&write=read,write&write=write,所以 此处应把认证用户的权限设置为write,否则authz文件中关于写权 限的设置都会无效的 3、使用了“svnserve.conf”同目录的passwd和authz,其中的 password-db指定了用户密码文件,authz-db是我们的授权文件, 也就是我们本文主要介绍的文件。 4、realm为“My First Repository”,这个值作为客户端保存服务器端 信息(如用户和密码)的唯一识别符 注意:使用Apache作为服务器时,根本就不会参考“svnserve.conf”文件的内容,而是会参考Apache的配置。 3、基于svnserve的版本库文件布局 使用svnserve时,为了管理的方便,应该使用相同的认证和授权文件,所以应该让所有版本库的配置文件svnserve.conf指向同一个password-db和authz-db文件。下面是一个多版本库的目录:

实现精细的目录访问权限控制 svn

================ Subversion之路 ================ ---------------------------- 实现精细的目录访问权限控制 ---------------------------- :作者: 郑新星 :联系: zhengxinxing gmail com :状态: 正稿 :版本: 1.0 :修订: $Id: The.Road.to.Subversion_authz.rst 1749 2006-12-05 08:05:59Z zhengxinxing $ :版权: 作者保留对本文的一切修改、发布等权力。任何人想要转载本文部分或全部内容时,必须保留包括作者、联系、状态、版本、修订、版权,共六项信息,并给出出处。对本文的参考引用,则不受限制。 :关键词: Subversion 目录访问权限 :献辞: 仅以本文,献给中国广大的自由软件爱好者们 :摘要: 本文从一个实际的例子入手,介绍了如何利用Subversion 自带的目录管理功能,来实现对项目目录的精细访问权限的控制。同时描述了在配置的过程中,需要注意的一些地方,如对中文的处理等。 .. section-numbering:: .. contents:: 目录 :backlinks: top 前言 ==== Subversion 权限简介 ------------------- 在Subversion 的使用当中,存在“认证”、“授权”两个概念。认证,即authentication,是指用户名与密码的认证。授权,即authorization ,是指某用户对某个目录是否具备读、写权限的一种审核。这两者配合作用,就组成了Subversion 的整个帐户管理体系。 在实际的工作当中,我们有时候会遇见需要控制项目目录的访问权限的情况,比如说对项目的一些关键模块进行限制,仅允许少数授权人士才可以修改等。由于项目的目录本身就是作为版本库的一个部分被Subversion 所收管,所以我们无法利用操作系统的帐户权限体系,来实现授权控制。因此,这个问题就只有让svn自己来解决了。

svn备份策略

VisualSVN备份策略 一、VisualSVN备份方式简介 VisualSVN版本库备份有三种方式 1.完全备份 svnadmin hotcopy 【d:\svnroot\project 备份目录】【d:\svnrootbackup\project 源版本库目录】 2.增量备份 备份命令: svnadmin dump 【d:\sourcecode\project 源版本库目录】--revision 【15 需要备份的版本号】--incremental > 【d:\sourcecode\dumpfile 保存了本次备份版本号包含的增量数据的文件】 恢复命令: svnadmin load 【d:\sourcecode\project 原版本库目录、需要恢复数据的目录】< 【d:\sourcecode\dumpfile 备份文件】 3.同步版本库 二、各方式优缺点 svnadmin hotcopy原设计目的估计不是用来备份的,只能进行全量拷贝,不能进行增量

优点是:备份过程较快,灾难恢复也很快;如果备份机上已经搭建了svn服务,甚至不需要恢复,只需要进行简单配置即可切换到备份库上工作。 缺点是:比较耗费硬盘,需要有较大的硬盘支持。 svnadmin dump是官方推荐的备份方式 优点是:比较灵活,可以全量备份也可以增量备份,并提供了版本恢复机制。 缺点是:如果版本比较大,如版本数增长到数万、数十万,那么dump的过程将非常慢; 备份耗时,恢复更耗时;不利于快速进行灾难恢复。 svnsync实际上是制作2个镜像库,当一个坏了的时候,可以迅速切换到另一个。不过,必须svn1.4版本以上才支持这个功能。 优点是:当制作成2个镜像库的时候起到双机实时备份的作用; 缺点是:当作为普通备份机制每日备份时,操作又较前2种方法麻烦。 三、研发中心选用的备份方式 经过比较决定采用同步版本库的方式,以下是同步版本库需要的配置步骤以及定时同步需要的任务设置 在备份机器上安装visualsvn服务器 新建版本库 svnadmin create 【E:\soft\Repositories\project 备份版本库文件地址】 为新的版本库创建pre-revprop-change钩子脚本(hook scrīpt) 在E:\soft\Repositories\project\hooks目录下新建一个空的pre-revprop-change.bat

svn详细使用教程-超经典

svn详细使用教程-超全面 TortoiseSVN是一个SVN的客户端,SVN客户端的使用 1.Checkout Repository 首先要Checkout服务器端的Repository, 所谓的Checkout就是指获得服务器端指定的Repository存储的所有文件。 这个Checkout和Visual Source Safe的Checkout意义完全不一样, VSS的Checkout指的是锁定某个文件,如果你以前使用过VSS, 在学习Subversion时这个问题一定要注意。 Checkout的具体方式是: 在客户端新建一个空目录,比如:F:\Project1 在该目录上单击右键,在弹出式菜单中选中SVN Checkout..., 之后在“URL of Repository”文本框中填入你想要连接的Repository的地址, 这个URL地址可以用浏览方式加入。 对于在本教程第二节建立的Repository, URL应该是“svn://xxx/project1” (xxx可以是服务器端主机名,也可以是服务器端的ip地址)。 然后点OK,会弹出一个认证对话框, 输入在教程第三节设置的用户名和密码。 点OK后就完成了对Repository的Checkout。 比如:在服务器端Repository中有一个a.txt文件, 那么Checkout之后F:\Project1目录下也会出现一个a.txt文件。 在本例中由于服务器端的Repository还未添加任何文件, 所以在客户端的F:\Project1下没有文件被Checkout。 执行Checkout除了会在F:\Project1产生Repository存储的文件及目录外, 还会产生了一个“.svn”的隐含目录,该目录是由subversion管理的, 不要删除或者手工改动其中的文件和目录。 现在F:\Project1中的文件和目录就叫做Repository的“Working Copy”简写“WC”(这个简写...汗)。 以后对Repository中文件和目录的修改,添加,删除的操作, 都是通过对这个“Working Copy”的操作实现的。 Checkout执行完后, 会发现F:\Project1目录的图标的左下角附着了一个小的状态图标 (当F:\Project1目录中的文件改变时,这个状态图标也会随之变化), 它表示F:\Project1是一个Repository的“Working Copy”, F:\Project1内的所有文件和目录也会有类似的状态图标。 2.添加文件 将要添加的文件或者目录拷贝到F:\Project1下, 然后在该文件或目录上单击右键,TortoiseSVN->Add,点OK。 如果添加了不止一个文件或目录, 则鼠标不要在F:\Project1中点中任何文件, 然后单击右键,TortoiseSVN->Add, 就可以添加多个文件或目录。

svn用户权限管理

SVN用户权限管理讲解 /***********************************************************/ //SVNSubversion 用户权限管理//资料来源:网络、总结//2010年7月20日 /***********************************************************/ 基本的操作:以我创建的Svn工程为例子来讲解SVN权 /***********************************************************/ //SVNSubversion 用户权限管理 //资料来源:网络、总结 //2010年7月20日 /***********************************************************/ 基本的操作: 以我创建的Svn工程为例子来讲解SVN权限管理的配置 仓库创建路径:D:\SVNLibrary >>>取消匿名登陆: 打开文件D:\SVNLibrary\conf\svnserve.conf 找到:###anon-access = read 将前面的注释去掉,并将read 改为:none 即使:anoe-access=none 表示匿名登陆下的用户权限为空。即:系统不支持匿名登陆 说明: auth-access = write #通过验证的用户可以读和写 auno-access = read #匿名登陆下可以只读文件,即:文件修改后无法提交到服务器 password-db =password #用户保存文件的名称 authz-db =authz #权限管理文件这个是非常重要的,如果我们要对整个工程的文件进行权限分配的时候,就必须将这个行文件前面注释掉,否咋即使我们在权限配置文件里面进行再多的配置都是无效的。这点我已经犯错了。 然后我们在authz 文件下面进行权限的分配 在权限分配的时候要注意的问题: >>>权限分配时,应遵守从根目录到子目录、从设置最广泛权限到最精细权限、从只读权限到读写权限设置原则,即从根目录开始设置最广泛的访问权限,然后逐步设置下属子目录的访问权限。提示:目录的访问权限既可以分配给组,也可以分配指定用户。 >>>对某个用户,如果只赋给他某个目录的权限,但对上级目录没有赋给,则他不能有上级目录的任何权限 例如某个用户有:/repository/project1的r权,而没有/repository的r权 >>>对于所有的目录,都优先处理设置在这个目录上的权限设置。 例如sai用户: [/repository] sai = rw 对于repository目录,他有rw的权限。 [/repository/project1] sai = r 对于repository下的project1目录,他只有r权限。

SVN库迁移整理方法总结

SVN库迁移整理方法总结 前段时间对项目SVN库做整理, 顺带再次研究了下SVN迁移的方式,整理如下: SVN数据库迁移方法一 称之为SVN全库操作,或称SVN全局备份并恢复,版本库数据的移植:svnadmin dump、svnadmin load 导出: $svnadmin dump repos > dumpfile //将指定的版本库导出成文件dumpfile 新建: $svnadmin create newrepos 导入: $svnadmin load newrepos < dumpfile SVN数据库迁移方法二 增量备份或批次备份,批次恢复,特定reversion导出: $svnadmin dump repos –r 23 >rev-23.dumpfile //将version23导出 $svnadmin dump repos –r 100:200 >rev-100-200.dumpfile //将version100~200导出 批次导出:对比较大的库可以批次导出,便于备份 $svnadmin dump repos –r 0:1000 >0-1000.dumpfile $svnadmin dump repos –r 1001:2000 --incremental >1001-2000.dumpfile $svnadmin dump repos –r 2001:3000 --incremental >2001:3000.dumpfile 批次导入,将这几个备份文件装载到一个新的版本库中 $svnadmin load newrepos < 0-1000.dumpfile $svnadmin load newrepos < 1001-2000.dumpfile $svnadmin load newrepos < 2001:3000.dumpfile

svnserve权限设置

Svnserve单项目权限设置 目录 Svnserve单项目权限设置 (1) 目录 (1) 前言 (1) 一项目结构 (2) 二建立版本库 (4) 三配置权限 (4) 四导入项目版本库 (9) 五启动svnserve (13) 六将svnserve设置为系统服务 (14) 1,安装svnservice (14) 2,删除服务 (15) 3,配置服务是自动启动 (15) 致谢 (16) 前言 目前网络上有很多的关于svn安装与权限设置的文章(基于SVN

自带的svnserve),但是如果您像我一样按照那些文章来进行我们的subversion的安装和设置会发现有很多问题,可以说每篇文章都有这样或那样的错误。或者断章取义,或者根本就没亲自验证就写出来,贴到网络上,然后又有很多人直接转帖到自己的博客,空间中。这就造成了网络上大量的权限设置文章根本是无法正确设置权限的。在学习那些“权限设置精细”文章的过程中,给我们的身心都造成了严重的伤害。至少给我幼小的心灵造成了创伤。每次上网搜到一篇文章都觉得这次总该可以了吧,结果全盘照抄了,还是不行。累的我真的想放弃了。还好后来有一篇文章给了我启发,那是我找过的唯一一篇有我需要的细节的文章。 这篇文章是专门写给像我一样的菜鸟,而又因为这样或那样的原因需要了解svnserve权限设置的人,也就是“侏儒”。如果您对windows 比较了解,也就是身高在1.5米以上的,偏矮的人,正常人,比较高的人,非常高的人,或者像姚明一样的巨人的话,那你会发现此篇文章极尽啰嗦,繁琐。对此我深表歉意! 一项目结构 亿联网络技术有限公司是一家专注于网络通讯产品的研发及销售的高科技企业。目前,公司主要致力于V oIP网关、V oIP终端、WIFI 和IP-PBX等网络通讯产品的开发、生产和销售。产品以出口为导向,95%产品远销英国、德国、美国、韩国等50多个国家与地区,拥有一批诸如Nortel、FranceTelecom, Skype等优质合作伙伴

Linux部署SVN详解(含备份与还原)

Linux部署SVN详解 1安装操作系统 安装系统采用CentOS-6.2/Database Server 2安装配置apache与SVN 1)数据包安装顺序:(安装包在CentOS-6.2盘的Packages目录下均可找到) a)apr-1.3.9-3.el6_1.2.i686.rpm b)apr-util-1.3.9-3.el6_0.1.i686.rpm c)httpd-2.2.15-15.el6.centos.i686.rpm 依赖文件:httpd-tools-2.2.15-15.el6.centos.i686.rpm 与apr-util-ldap-1.3.9-3.el6_0.1.i686.rpm d)sqlite-3.6.20-1.el6.i686.rpm e)subversion-1.6.11-2.el6_1.4.i686.rpm 依赖文件:neon-0.29.3-1.2.el6.i686.rpm neon依赖文件:pakchois-0.4-3.2.el6.i686.rpm与libproxy-0.3.0-2.el6.i686.rpm 安装libproxy命令:三个包同时安装 rpm -ivh libproxy-0.3.0-2.el6.i686.rpm libproxy-bin-0.3.0-2.el6.i686.rpm libproxy-python-0.3.0-2.el6.i686.rpm f)mod_dav_svn-1.6.11-2.el6_1.4.i686.rpm 安装后将生成文件:/etc/httpd/conf.d/subversion.conf 2)修改apache(即httpd)配置文件 #vi /etc/httpd/conf/httpd.conf 执行上述命令后,对文件进行以下修改: ServerName localhost:80 localhost表示自己的IP地址 (找到上面一行并做类似修改后保存退出) #service httpd start #chkconfig httpd on 文件修改完成后,启动http服务并使用chkconfig命令设置开机自启动。 3)创建自己的svn版本库 #cd /home #mkdir svn #cd svn #mkdir data conf #cd data

SVN权限控制

权限配置 作为一个配置管理员,需要管理用户的权限,本文主要介绍了使用Subversion的授权文件“authz-db”,同时为了叙述的清晰,我首先澄清一些概念。 1. 认证(Authentication)和授权(Authorization) 这两个术语经常一起出现。其中认证的意思就是鉴别用户的身份,最常见的方式就是使用用户名和密码,授权就是判断用户是否具备某种操作的权限,在Subversion里提供了“authz-db”文件,实现了以路径为基础的授权,也就是判断用户是否有操作对应路径的权限。 2. svnserve下的配置文件 因为本文是以svnserve为例的,所以先介绍一下版本库目录的结构: D:\SVNROOT\PROJECT1 ├─conf ├─dav ├─db │ ├─revprops │ ├─revs │ └─transactions ├─hooks └─locks 其中conf下面有三个文件: authz passwd svnserve.conf

其中的“svnserve.conf”是这个版本库的配置文件,当使用svnserve时,这个配置文件决定了使用什么认证和授权文件: password-db = passwd authz-db = authz 上面的配置说明使用“svnserve.conf”同目录的passwd和authz,其中的password-db指定了用户密码文件,authz-db是我们的授权文件,也就是我们本文主要介绍的文件。 3. 基于svnserve的版本库文件布局 使用svnserve时,为了管理的方便,应该使用相同的认证和授权文件,所以应该让所有版本库的配置文件svnserve.conf指向同一个password-db和authz-db文件。下面是一个多版本库的目录: D:\SVNROOT ├─project1 │ ├─conf │ ├─dav │ ├─db │ │ ├─revprops │ │ ├─revs │ │ └─transactions │ ├─hooks │ └─locks └─project2 ├─conf ├─dav

使用svnsync 同步备份两台机器的svn

使用svnsync 同步备份两台机器的svn 源目录:https://192.168.0.10/svn/source 同步目标目录:https://192.168.0.2/svn/source_bak 1.如果目标目录存在相同的项目,请先清除,重新建立空项目 2.在目标服务器中建立svn版本库svnadmin create source_svnbak (svnadmin是svn的命令如果,没有将svn目录放到环境变量需要在其目录里面使用该句,若是windows可以直接点击右键创建svn) 3.在新建项目文件夹下hooks中将pre_revprop_change.tmpl改为pre_revprop_change.bat并将内容清空然后输入exit 0 4.执行初始化 svnsync init https://192.168.0.2/svn/source_bak https://192.168.0.10/svn/source (执行到这一般会出现一个问题svnsync: 认证失败)解决:需要把源文件source_svn中的conf拷贝到目标source_svnbak中替换conf文件如果成功他会提示你输入用户名和密码(注:第一个是Administrator这个我觉得不用管随便输入,确定后才是你svn中填写的用户名和密码在conf中的文件有配置) 正确后,显示Copied properties for revision 0.(复制版本0 的属性。) 5.执行同步 svnsync sync https://192.168.0.2/svn/source_bak --username xxxx --password xxxx(一般端口号不用写,除非端口号不是默认安装过的

SVN权限详解

【转贴】Subversion权限详解 1 背景假设 厦门央瞬公司是一家电子元器件设备供应商,其中有个ARM部门,专门负责ARM 芯片的方案设计、销售,并在北京、上海各设立了一个办事处。对于工作日志,原先采用邮件方式发给经理,但是这种方式有个缺点,那就是不具备连续性,要看以前的日志必须一封一封邮件去查看,很麻烦。于是就想到利用 Subversion,让员工在自己电脑上编辑日志,然后利用svn传送回来,既方便员工自己编写日志,又方便对日志的归档处理,而且提交日志的时候只需要执行一下 svn update 即可,比发送邮件还要简单的多。 ?svn服务器相关信息 o服务器地址:192.168.0.1 o服务器OS:MS Windows 2000 Server Edition 中文版 o代码库本地目录:D:\svn\arm ?arm部门文档的目录结构如下: ?arm 部门名称 ?├─diary 工作日志目录 ?│ ├─headquarters 总部工作日志目录 ?│ ├─beijing 北京办日志目录 ?│ └─shanghai 上海办日志目录 ?├─ref 公司公共文件参考目录 ?└─temp 临时文件目录 ?人员情况 o morson,公司总经理,其实他不必亲自看任何东西,就连部门经理们的每周总结都不一定看。但是为了表示对他的尊敬,以及满足一下他的权力欲,还 是给他开放了“阅读所有文档”的权限 o michael,arm事业部的部门经理,没事的时候喜欢弄点儿新技术,用svn来管理日志,就是他相处来的主意 o scofield,北京办人员,老员工,为人油滑难管 o lincon,上海办人员,老员工,大老实人一个 o linda,总部协调员、秘书,文笔不错,长得也不错 o rory,单片机技术员,技术支持 ?访问权限需求分析 o允许总经理读取所有文件 o除部门经理外,所有其他人员,均只能看到本办事处人员工作日志 o不允许匿名访问 o ref目录只允许经理和秘书写,对其他人只读 o temp目录人人都可以写

VisualSVN-Server-2.1.5自动备份手册

VisualSVN-Server-2.1.5 自动备份手册 版本:1.4 发布日期:2010-11-2 实施日期:2010-11-2

修订记录

目录 修订记录 (2) 1. 同步备所需要的命令 (4) 1.1. Svnsyn (4) 1.2. 目标 (4) 1.3. 过程 (4) 1.4. 初始化 (5) 1.5. 同步 (6) 2. 具体操作操作流程概括 (7) 3. 遇到的问题与解决方法 (8) 4. Subversion同步工具svnsync出错 (8) 5. 使用svnsync备份很简单,步骤如下 (9) 6. 注意事项 (12) 7. 关于svnsync备份时出现的问题解析 (12) 7.1. 问题一 (12) 7.1.1. 问题描述 (12) 7.1.2. 解决方案 (12) 7.2. 问题二 (12) 7.2.1. 问题描述 (12) 7.2.2. 解决方案 (13) 8. 自动定时备份 (13) 8.1. Repositories.bat的说明 (13) 8.2. SVN.bat的说明 (14) 8.3. 定时执行计划 (14) 8.3.1. 执行步骤 (14)

1.同步备所需要的命令 1.1.Svnsyn 下面介绍利用两个命令svnsync来同步版本库,达到备份版本库的目的要用到两个命令 1)svnsync init 初始化,建立目标库和源库之间的同步关系 命令格式: svnsync init 目标库URL 源库URL 2) svnsync sync 真正的同步 命令格式 svnsync sync 目标库URL 1.2.目标 本次实现的是版本库的远程自动备份,将版本库备份到另一台机器上 假设我们要同步的源版本库为http://192.168.1.210/svn/svnprojec位于机器A,具体路径我们不必理会,因为我们使用http协议 目标库在机器B,file:///F:/Repositories/svnproject,这个为了简单和安全,我们使用file://协议 1.3.过程 1)创建pre-revprop-change.bat文件:即复制pre-revprop-change.tmpl ,将其扩展名改为pre-revprop-change.bat,并且清空原有的所有内容、保存。如下图所示:

SVN权限详解

【转贴】Subversion权限详解 1背景假设 厦门央瞬公司是一家电子元器件设备供应商,其中有个ARM部门,专门负责ARM芯片的方案设计、销售,并在北京、上海各设立了一个办事处。对于工作日志,原先采用邮件方式发给经理,但是这种方式有个缺点,那就是不具备连续性,要看以前的日志必须一封邮件去查看,很麻烦。于是就想到利用Subversion,让员工在自己电脑上编辑日志,然后利用svn传送回来,既方便员工自己编写日志,又方便对日志的归档处理,而且提交日志的时候只需要执行一下svnupdate即可,比发送邮件还要简单的多。 svn服务器相关信息 o服务器地址: 192.168. 0.1 o服务器OS: MS Windows 2000 Server Edition中文版 o代码库本地目录: D: \svn\arm arm部门文档的目录结构如下: arm部门名称 ├─diary 工作日志目录 │ ├─headquarters 总部工作日志目录 │ ├─beijing 北京办日志目录

│ └─shanghai 上海办日志目录 ├─ref 公司公共文件参考目录 └─temp 临时文件目录 人员情况 omorson,公司总经理,其实他不必亲自看任何东西,就连部门经理们的每周总结都不一定看。但是为了表示对他的尊敬,以及满足一下他的权力欲,还是给他开放了“阅读所有文档”的权限 omichael,arm事业部的部门经理,没事的时候喜欢弄点儿新技术,用svn 来管理日志,就是他相处来的主意 oscofield,北京办人员,老员工,为人油滑难管 olincon,上海办人员,老员工,大老实人一个 olinda,总部协调员、秘书,文笔不错,长得也不错 ory,单片机技术员,技术支持 访问权限需求分析 o允许总经理读取所有文件 o除部门经理外,所有其他人员,均只能看到本办事处人员工作日志o不允许匿名访问 oref目录只允许经理和秘书写,对其他人只读 otemp目录人人都可以写 2建立代码库 在服务器D: \svn目录下,建立arm代码库,命令如下:

相关主题
文本预览
相关文档 最新文档