来源:http://www.penddy.com/axure-rp-road-team-c-svn-server-based-on-shared-projects-i.html
一、前言
以前版本管理常用的软件是微软出品的vss和开源的cvs,svn是后来逐步发展起来的版本管理工具,根据对svn的介绍,svn是一些对cvs固有缺陷不满意的开发者总结了一些cvs的不足进一步开发的版本工具。
如果对svn有进一步兴趣,这里有对svn的介绍:svn介绍资料
svn一样是开源的,且有愈来愈流行的趋势,不少新的项目基本上都使用了svn来作为版本管理工具,因为其开源,有不少人在开发相应的服务端和客户端,从而有多种服务端和客户端软件可选; 相信因为如此,axure才会采用svn作为版本管理的承载,因此才会有基于svn server搭建axure共享项目的可能性。
svn的官方网址网址如下:svn官方网站
Axure RP所需要使用的是svn服务器,如果已经有搭建好的svn服务器,则可以直接使用,如果没有,则需要搭建一个svn服务器。
这里给出一个在windows下搭建svn服务器的示例,如果想要更多了解,则可以搜索svn相关的资料,svn服务器一样可以在Linux下搭建。
二、windows下搭建svn server
在svn的官方网站提供了多种服务器端供选择,选用了其中有gui界面的svn服务器VisualSvn,其官方地址如下:VisualSvn官方地址。
VisualSvn的服务器端是免费的,客户端是收费的,我们目前只需要服务器端。
其安装过程是标准的windows安装过程,不再赘述。
1.主界面
2.Visual的属性
3. 可以设置服务器端内容存放位置
4.可以设置密码验证方式,请选svn验证方式
根据svn的官方介绍,其服务是基于apache的,安装VisualSvn后已经直接可用了,由于已经安装过apache,所以不确认是否一定要安装apache;如果不能使用,请安装apache,最好同时安装php,因为下面用户自助修改密码的功能是需要apache和php环境的。
简便起见可以安装架站套件xampp或appserv,其已经同时包含了apache和php。
三、svn server的用户密码管理
svn有自己的一套管理机制,关于权限、目录访问等,有兴趣可以搜索相关资料,其默认情况下用户的密码是只能管理员设置的,这点和cvs一样非常不方便。
这里谨根据网络资料介绍如何为用户提供自助修改密码的功能,其原理是通过apache可以调用系统命令的方式,通过调用系统命令修改用户名密码;通过basice认证关联密码文件的方式做用户认证。
1.修改apache的conf目录下的httpd.conf,在最后增加如下代码。第一行的意思是设定一个http访问的路径svntools,以后会通过访问http://localhost/svntools来访问自助修改密码的功能,后面几行的设定访问上述路径时的验证方式,设定为必须需要输入原用户名和密码验证密码成功后才可以进行修改密码的工作,其中密码文件使用svn server的密码文件htpasswd。
Alias /svntools “C:/Repositories/svntools”
allow from all
Require valid-user
AuthType Basic
AuthName “Subversion Tools”
AuthUserFile C:/Repositories/htpasswd
/*
Alias /svnmodify "E:/svn/"
Require valid-user
AuthType Basic
AuthName “Subversion Tools”
AuthUserFile e:/svn/config/htpasswd.conf
*/
?>
$username = $_SERVER["PHP_AUTH_USER"]; //经过 AuthType Basic 认证的用户名
$authed_pass = $_SERVER["PHP_AUTH_PW"]; //经过 AuthType Basic 认证的密码
$input_oldpass = (isset($_REQUEST["oldpass"]) ? $_REQUEST["oldpass"] : ""); //从界面上输入的原密码
$newpass = (isset($_REQUEST["newpass"]) ? $_REQUEST["newpass"] : ""); //界面上输入的新密码
$repeatpass = (isset($_REQUEST["repeatpass"]) ? $_REQUEST["repeatpass"] : ""); //界面上输入的重复密码
$action = (isset($_REQUEST["action"]) ? $_REQUEST["action"] : ""); //以hide方式提交到服务器的action
if($action!="modify"){
$action = "view";
}
else if($authed_pass!=$input_oldpass){
$action = "oldpasswrong";
}
else if(empty($newpass)){
$action = "passempty";
}
else if($newpass!=$repeatpass){
$action = "passnotsame";
}
else{
$action = "modify";
}
?>
//action=view 显示普通的输入信息
if ($action == "view"){
?>
}
else if($action == "oldpasswrong"){
$msg="原密码错误!";
}
else if($action == "passempty"){
$msg="请输入新密码!";
}
else if($action == "passnotsame"){
$msg="两次输入密码不一致,请重新输入!";
}
else{
$passwdfile="C:\Repositories\htpasswd";
$command='"D:\xampp\apache\bin\htpasswd.exe" -b '.$passwdfile." ".$username." ".$newpass;
system($command, $result);
if($result==0){
$msg="用户[".$username."]密码修改成功,请用新密码登陆.";
}
else{
$msg="用户[".$username."]密码修改失败,返回值为".$result.",请和管理员联系!";
}
}
if (isset($msg)){
?>
}
?>
3. 如果一切配置无误的话,访问http://localhost/svntools则出现如下界面:
如果输入密码正确,则会看到如下界面,这里可以进行密码修改,即Axure RP的用户可以用初始密码登录,登录后设置自己的密码。
这个服务器版是免费的,客户端是收费的,显然不适合我们个人使用,在此只是提供给大家学习配SVN服务器的机会,主要是自己要用到,现在在实习,实习完了,就不得不用SVN了。我所在公司现在做的项目是在LINUX下,在网上搜素时发现SVN Server大部分是在LINUX下配的同时要结合Apache。
Related posts:



最新评论
博客不错 加油
学习LZ好榜样哟
如果再给我一次机会我会说我爱
过来学习下·······
博主的文章很棒,支持! ht
文章很不错 值得学习 呵呵
好文章!值得一看
很不错的,顶一下下
很少关注