SVN服务器端配置说明

 

一个Subversion的版本库可以和客户端同时运行在同一个机器上,使用file:///访问,但是一个典型的Subversion设置应该包括一个单独的服务器,可以被办公室的所有客户端访问—或者有可能是整个世界。

理论上讲,Subversion可以使用无限数量的网络协议实现,目前实践中只有两种服务器。
Apache是最流行的web服务器,通过使用mod_dav_svn模块,Apache可以访问版本库,并且可以使客户端使用HTTP的扩展协议WebDAV/DeltaV进行访问,因为Apache是一个非常易于扩展的web服务器,它提供了许多“易于获取的”特性,例如加密的SSL通讯,日志和与第三方工具的集成,以及内置的版本库web浏览功能。

在另一个角落是svnserve:一个更小,轻型的服务器程序,同客户端使用自定义的协议。因为协议是为Subversion专门设计的,并且是有状态的(不像HTTP),它提供了更快的网络操作—但也有一些代价。它只理解CRAM-MD5的认证,然而它非常易于配置,是开始使用Subversion的小团队的最佳选择。

 

 

 

服务器端配置说明 1,软件下载 * 下载Subversion服务器程序。 到官方网站 的下载二进制安装文件,目前可以下载svn-1.4.4-setup.exe。 下载地址:http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=91 此版本支持Apache2.0.x 2,服务器和客户端安装 * 服务器安装,直接运行svn-1.4.4-setup.exe,根据提示安装即可,这样我们就有了一套服务器可以运行的环境。(由于subversion已有自带的svnserver服务器,如果需要使用Apache服务器的特性则再将其集成到apache上即可,此处我们暂时使用它自带的服务器) (注:apache的配置在文档最后边的附录中可以找到) * 安装TortoiseSVN,同样直接运行TortoiseSVN-1.4.4.9706-win32-svn-1.4.4.msi按照提示安装即可,不过最后完成后会提示是否重启,其实重启只是使svn工作拷贝在windows中的特殊样式生效,与所有的实际功能无关,为了立刻看到好的效果,还是重新启动机器。 3,建立版本库(Repository) 运行Subversion服务器需要首先要建立一个版本库(Repository),可以看作服务器上存放数据的数据库,在安装了Subversion服务器之后,可以直接运行,如: svnadmin create E:/svn/sise_repository 就会在目录E:/svn/sise_repository下创建一个版本库。 我们也可以使用TortoiseSVN图形化的完成这一步: 在目录E:/svn/sise_repository下"右键->TortoiseSVN->Create Repository here...“, 然后可以选择版本库模式, 这里使用默认即可, 然后就创建了一系列目录和文件。 如图所示: 在弹出的数据仓库类型我们选择默认的FSFS,点击OK。 4,配置用户和权限 1.来到E:/svn/sise_repository/conf目录,修改svnserve.conf: # auth-access = write # password-db = passwd 改为: auth-access = write //通过验证的用户才能有读写的权限 password-db = passwd //验证用户所使用的文件passwd 2.然后修改同目录的passwd文件,去掉下面三行的注释: # [users] # harry = harryssecret # sally = sallyssecret 最后变成: [users] harry = 123456 //以名值的方式存储用户名和密码 “用户名=密码” sally = 654321 3.修改同目录下的authz文件来设置访问权限 在[groups]下创建用户组例如这里是 [groups] Admin=admin Developer=developer1,developer2 以上便创建了两个用户组,分别是admin和developer和其相应的组的成员。 设置访问路径 [/] *=r @admin=rw 如上所示,所有的用户对整个svn目录下的文件都可以读取,admin组有读写的权限(“*”代表所有的用户,r代表读 w代表写) 可设置具体的版本库的访问权限如下: [版本库A:/] @developer=rw 如上设置,表示所有developer组的成员对于“版本库A”下边的所有文件都有读写的权限 5,运行独立服务器 在任意目录下运行:(如果提示找不到svnserve则检查,%Subversion安装目录%/bin是否已添加至环境变量PATH) svnserve -d -r E:/svn/sise_repository/ 我们的服务器程序就已经启动了。 (注:可通过执行 svnserve –help 来得到svnserve的帮助信息) 附:将svnserve安装为系统服务 sc create svnserve binpath= "C:/developertools/Subversion/bin/svnserve.exe --service --root D:/svn/sise_repository" displayname= "Subversion" depend= Tcpip start= auto 另外还有两点需要小心处理。首先,如果路径中包括空格,一定要用“/”处理“"”号,例如上面的例子中如果svnserve.exe在“c:/program files/subversion/”中,则命令应该写为“binpath= "/"c:/program files/subversion/bin/svnserve.exe/"”(“”中的内容),整个命令如下,红色部分是改变部分: sc create svnservice binpath= "/" C:/developertools/Subversion/bin/svnserve.exe /" --service -r D:/svnroot" displayname= "Subversion" depend= Tcpip start= auto 其次,sc对选项的格式还有要求,例如“depend= Tcpip”不能写为“depend = Tcpip”或“depend=Tcpip”,也就是“=”前不能有空各,而后面必须有空格。 如果服务安装的有问题,你可能需要删除服务。要删除前面添加的服务,只需要运行"sc delete svnservice","svnservice"就是我们创建服务时使用的名字

 

在Source Insight中添加自定义功能的步骤如下:

1.Source Insight中,Options->Custom Commands...->Add...,New Command name 随便写,我的是"Edit with Vim"

2.Run中写入: "C:/Program Files/Vim/vim63/gvim.exe" --remote-silent +%l %f

意思是在当前已经打开的gvim窗口里面打开当前的文件,并且跳转到指定行

%l为当前的行号,%f为文件名

使用 --remote-silent 的作用是,如果已经打开了对应文件,就不会打开第二次,而是在已经打开的文件里跳转到对应行

3.还是同一个对话框里面,选择Keys->Assign New Key...->按F12,如果你已经将F12设置给其他命令,选择其他的按键就行了

下面是一些常用自定义功能:( CUSTOM COMMANDS )

打开资源管理器并选中当前文件

ShellExecute open explorer /e,/select,%f

查看log

"C:/Program Files/TortoiseSVN/bin/TortoiseProc.exe" /command:log /path:%f /notempfile /closeonend

diff

"C:/Program Files/TortoiseSVN/bin/TortoiseProc.exe" /command:diff /path:%f /notempfile /closeonend

取得锁定(check out)

"C:/Program Files/TortoiseSVN/bin/TortoiseProc.exe" /command:lock /path:%f /notempfile /closeonend

提交(check in)

"C:/Program Files/TortoiseSVN/bin/TortoiseProc.exe" /command:commit /path:%f /notempfile /closeonend

更新(update)

"C:/Program Files/TortoiseSVN/bin/TortoiseProc.exe" /command:update /path:%f /notempfile /closeonend

更新整个目录(update all)

"C:/Program Files/TortoiseSVN/bin/TortoiseProc.exe" /command:update /path:*.* /notempfile /closeonend

取消锁定(undo check out)

"C:/Program Files/TortoiseSVN/bin/TortoiseProc.exe" /command:revert /path:%f /notempfile /closeonend

在ultriEdit中编辑

"C:/Program Files/UltraEdit-32/uedit32" %f

在vim中编辑并定位到当前行

"C:/Program Files/Vim/vim63/gvim.exe" --remote-silent +%l %f

汇总其他小技巧:

让{ 和 } 不缩进:

Options->Document Options->Auto Indent->Indent Open Brace/Indent Close Brace

hao space: SourceInsight 小技巧

1、按住"ctrl", 再用鼠标指向某个变量,点击一下,就能进入这个变量的定义。

2、今天把一个用sourceinsight排版整齐的C文件,偶然用VC打开一看,全乱了。研究了半天,发现SI对每个字符的宽度不太一致。

    请教同事发现选上"view --> draft view", 就可以让每个字符的宽度一致了。快捷键是 "Alt + F12"

3、"shift+F8" 标亮所有文本中光标所在位置的单词

4、跳到某一行:"ctrl + g"

Source Insight是阅读和编写代码的好东东,基本上也算得上是经典之作了,虽然还有一点点小bug,不过对于我们这些C程序员来说可是一旦拥有别无所求。下 列小技巧是在工作中同事整理总结的,对提高工作效率多少有点帮助,其中有些是对应于SVN的,没有使用SVN做版本管理的人就不要白费力气了。

ShellExecute open explorer /e,/select,%f

        /*作用是在资源管理器中打开当前编辑文件并选中*/

        /*可以设置快捷键如ctrl+e,这样能很方便的在资源管理器打开对应的文件,并进行tortoiseSVN的相关操作*/

X:/Progra~1/TortoiseSVN/bin/TortoiseProc.exe /command:log /path:% /notempfile /closeonend

        /*使用前注意更改对应的bin安装路径*/

        /*作用是直接查看当前文件的svn log*/

        /*可以设置快捷键如ctrl+l*/

X:/Progra~1/TortoiseSVN/bin/TortoiseProc.exe /command:diff /path:% /notempfile /closeonend

        /*使用前注意更改对应的bin安装路径*/

        /*作用是直接查看当前文件和基准版本的比较*/

        /*可以设置快捷键如ctrl+d*/

1、 到svn官方网站http://subversion.trigris.org/下载服务器安装包svn-win32-1.6.1.zip,将该压缩包解压到D:\subversion目录下,出现D:\subversion\bin。建立D:\svn,在命令行该目录(D:\subversion\bin\)下输入svnadmin create D:/svn/repos1,如果创建成功,D:\svn下将会多一个repos1目录。 2、 让svnservice服务随Windows系统一起启动,在命令行下输入:sc create svnservice binPath= "\"D:\subversion\bin\svnserve.exe\" --service -r D:\svn" start= auto 3、 权限配置: 在进行权限配置前,所有的用户都能进行任何操作,在很多情况下是不允许的。在创建仓库时,仓库目录(如:D:\svn\repos1)下都会生成好几个文件夹,其中conf里面存储的是配置信息,包括三个文件: authz:访问权限配置 passwd:用户名和密码配置 svnserve.conf:基本配置信息 ⑴先配置svnserve.conf,将里面几项配置前的注释去掉,最后的内容如下: [general] #anon-access = read #auth-access = write password-db = passwd authz-db = authz 这些参数的含义文件里都有详细说明,其中,anon-access和auth-access分别是对匿名用户以及认证用户的访问控制,password- db指明用户密码文件路径,authz-db指明权限配置文件路径。另外还有一个参数realm用于指明仓库所属的认证域,默认情况下每个仓库位于不同的域(每个仓库有一个唯一的uuid),因此我们可以不设置该项,除非多个仓库需要共用同一份passwd配置。 ⑵passwd文件的配置很简单,格式如下(等号前面为用户名,后面为密码): [users] #harry = 123 #sally = 123 sunxiaoyong = 11111111[A1] ⑶authz则可以创建用户组并精确配置某个用户或用户组对某个文件或目录的访问权限,下面是一个例子: [groups] #harry_and_sally = harry,sally [/] sunxiaoyong = rw * = r[A2] #[/project1] #* = #harry = rw #sally = r #[/project1/foo] #sally = #[/project2] #@harry_and_sally = rw #guest = r 文件内容其实很简单易懂,groups用于定义用户组,后面便是对资源的具体访问控制,/表示仓库根目录,*表示所有用户,用户组前面需加上@符号,r表示可读,w表示可写,等号右边为空则表示没有权限。注意对于目录结构,当用户访问某个资源时,SVN会先看有没有直接针对该资源的访问控制,如果没有找到,则会继承上一级目录的访问权限,如此递推。 补充再提一点,当我们有多个仓库时,我们会发现这些仓库的用户帐号在大多数情况下都是相同的,因此,我们可以将passwd文件放到公共的地方,然后将所有仓库的password-db配置都指向该文件。相应的,authz-db也可以共用一个文件,不过需要在配置具体的访问控制时指明所属的仓库,如下: [/] * = r [repos1:/project1] * = r harry = rw [repos2:/project1] * = r sally = rw 上述配置表明,所有人对所有仓库的根目录都有读权限,但只有harry对仓库repos1里的project1有读写权限,只有sally对仓库repos2里的project1有读写权限。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值