2016年11月

windows server 2012配置SVN流程(2016年11月21日)

因项目需要,需要进行版本控制和团队协作,所以需要在服务器端配置好SVN。
所以自己参考相关文档,手工的一步一步配置,并记录下来。

配置环境

操作系统:Windows server 2012 64位
预装软件:wamp
客户端:Hbuilder(安装SVN插件1.6.x版本)

所需软件

1、tortoiseSVN 1.9.4 (点此用迅雷直接下载
2、TortoiseSVN汉化包LanguagePack_1.9.4-win64-zh_CN.msi (点此用迅雷直接下载
3、下载subversion服务器端Setup-Subversion-1.6.6.msi(点此直接用迅雷下载
由于软件都在国外,所以一般用迅雷加速速度会快一些。

安装软件

1、安装tortoiseSVN,没什么好配置的,直接下一步即可。
2345截图20161121204849.png
2、安装汉化包。
3、安装subversion,没什么好配置的,如果你想安装在其他路径可以改一下路径。
2.png
4,安装完成后,服务器桌面点右键,看到SVN的菜单了。
3.png

建立版本库

运行subversion服务器端需要建立一个版本库(Repository),用来存放项目代码。
建立方法有两个:
1、命令行创建(略)
2、用tortoiseSVN工具创建
2.1 在你的项目目录(如:D:\)下,建立一个文件夹,叫做repository。
4.png
2.2 进入repository目录下,单击右键,选择tortoriseSVN,选择create repository here,会生成一堆文件和目录。
5.png
2.3 这时候会弹出提示:
9.png
记录下这个网址,然后点击确定
2.4 配置用户权限
2.4.1 打开当前目录下conf/svnserve.confi配置文件。
依次找到以下三行:

anon-access = read

auth-access = write

password-db = passwd

去掉前面所有的#,然后将第一行的read改为none,即:
anon-access = none
auth-access = write
password-db = passwd
2.4.2 打开当前目录下的passwd文件
在末行添加:username = password,请将这里的username替换为你的用户名,password替换为你的密码
2.4.3 配置中文
在任意位置点击右键,选择tortoiseSVN->setting
打开的配置界面中,language选择中文,确定。
至此,配置完毕。
注意:请重启服务器。

启动服务器端

管理员模式启动命令行cmd
输入svnserve -d -r d:\repository 回车 (注意替换路径)
dos窗口不要关。不会显示其他内容的。
7.png

生成第一个版本库服务器

我们在wamp的www目录下创建一个项目,叫做test
在test中,建立一个文件,index.php,内容:version 1.0
请确保您可以在客户端通过URL: http://服务器IP/项目名称/index.php访问到该页面
定位到test目录下,空白处,点右键,选择tortoiseSVN->导入
版本库URL填写刚才记录下的URL
10.png
点击确定。
11.png
至此,我们的第一个版本库就生成了。

客户端操作

完成了服务端配置和测试,还需要实现SVN最重要的功能

从客户端获取文件

我是用HBuilder安装了svn插件1.6.x,如何安装请百度,非常简单。
1、打开HBuilder,在左侧项目管理器区域空白处单击右键,选择导入。
2、选择SVN->从SVN检出项目。
12.png
3、创建新的资源库位置->下一步
4、在URL填写svn服务器端网址,如:svn://222.222.212.212

建议

不要直接在运行中的服务器上安装,最好先找一个空的服务器进行测试,熟悉了再在项目上部署。

鸣谢:
xinxin19881112 SVN服务器搭建--Subversio与TortoiseSVN的配置安装

双击提交按钮导致数据重复提交的解决方法

1426932345.jpg
某WEB项目在交测试团队测试时,发现如下问题:

当连续快速点击提交按钮时,会提交多次重复的记录。

经过分析,我们首先想到了服务端判断是否重复记录的方法:

当提交记录时,判断某session值是否已被设置。
如果未被设置,则设置该session值,并继续执行。
如果已被设置,则终止执行。

但在实际测试中,由于表单提交到服务器端所需的时间通常由网速觉得,一旦该时间>用户双击间隔,则会导致session未设置生效,第二条数据已经提交过来了。
失败!

后来想到,必须在客户端进行判断,最快的方法是js

js端方法(可用):

js中定义一个全局变量m
当点击提交按钮时,执行check_submit函数
该函数第一行即给m++
接下来判断m的值,如果m>1,则表示是重复提交,可弹出提示,防止用户重复点击
如果m<=1,表示是首次提交,则正常执行提交流程。

关键代码如下:

var m = 0;
function check_submit(){
    m++;
    if(m > 1){
        alert('请勿重复提交!');
        return false;
    }else{
        return true;
    }
}