svn服务器的代码可以同步到服务器吗

svn服务器的代码可以同步到服务器吗,第1张

开发过程中,需要经常将SVN服务器上的代码同步到测试服务器上,一般做法,需要人工手工更新,这样很浪费工夫。下面的脚本为svn server的钩子程序,放在svn服务器上,只要代码更新,就会自动提交的测试服务器上。

使用条件:

1、SVN主机是WIN系统,如果要在LINUX的SVN主机上用,需要修改下面的代码为sh脚本,道理类似,代码不同。有需要的自行更改吧。

2、SVN主机上需要安装完整版的PUTTY安装包,而不是一个EXE

3、测试服务器可以用putty登录

@echo off

setlocal enableDelayedExpansion

rem 本脚本实现将SVN服务器A(win环境)上提交的代码,自动上传(通过pscp)到测试环境的服务器B(linux)上,如果SVN在LINUX环境下,根据本代码自行调整。

rem svn服务器上版本库地址

set reposLoc=%1

set REV=%2

rem ---------------------------------------------------------------------- 配置开始

rem svn服务器上putty的路径

set puttyPath="D:\Program Files (x86)\PuTTY"

rem 测试环境putty登录的用户名

set username=root

rem 测试环境putty登录的密码

set password=password

rem 测试环境IP

set host=10111

rem 测试环境代码根地址

set remoteRootPath=/var/>

rem ---------------------------------------------------------------------- 配置结束

cd /d %puttyPath%

rem 遍历提交了的代码

for /f "tokens=2 delims= " %%i in ('svnlook changed %reposLoc%') do (

set "var=%%i"

svnlook cat !reposLoc! !var! > temptxt

rem 替掉路径中的trunk

set newPath=!var:trunk=!

rem 通过pscp提交到测试服务器

echo y | pscp -l  !username! -pw !password! temptxt !host!:!remoteRootPath!!newPath!

)

使用方法:

将上面的代码中配置区的变量修改,并将内容保存成bat文件,命名为post-commitbat,放在SVN服务器上版本库的hooks目录下。提交代码试试看吧。经测试可行。

当然,这个脚本可以再做的牛比点儿,可以针对某个用户的提交做更新,也可以分析SVN提交时的日志,只有当日志中有特定的字符时更新。

另外,由于上面的脚本,只更新当前的提交,所以假设只针对某个用户的提交做更新时,不能只更新当前提交,这样其它用户的提交就落掉了,需要更新整个工程。

1、安装网盘
选择一个国内有名的网盘存储,例如金山网盘、360云盘等,注册账户会默认赠送几G的使用空间,然后下载其对应的网盘客户端管理软件(也可以使用浏览器方式),使用账号登录,就可以上传、管理文件等。
2、建立SVN Reporsitory
于网盘创建svn reporsitory
,在网盘中创建目录,例如“svn”目录,进入该目录后使用TortoiseSVN工具创建仓库(reporsitory)
3、SVN使用-导出
创建项目目录为”project”,在”project”中点击右键选择SVN Checkout,配置如下图所示信息:仓库>一、准备工作
1、SVN服务器:解压缩包,可以从官方网站下载最新版本。
2、SVN客户端:TortoiseSVN,即常说的小乌龟,是一个客户端程序,用来与服务器端通讯。
二、安装服务器和客户端程序
1、SVN服务器:直接解压缩到某个文件夹下即可。示例路径:c:\svn\
备注:如果下载的是msi程序,直接运行按提示安装即可。
2、SVN客户端:直接运行按提示安装即可。示例路径:C:\Program Files\Subversion
三、建立版本库(Repository):示例路径:e:\svnroot。建立版本库有两种方法:
方法一,建立空目录e:\svnroot\repos1,进入repos1文件夹,在空白处点击右键,选择“TortoiseSVN->Create Repositoryhere”,
方法二,建立空目录e:\svnroot\repos2,进入DOS命令行,输入如下命令:
svnadmincreate e:\svnroot\repos2
四、运行SVN服务器,启动服务。启动服务有两种方法:
方法一,临时启动服务,在DOS下输入如下命令:
svnserve -d -r e:\svnroot\repos1--listen-host ip地址 --listen-port=端口号
说明:“listen-host”和“listen-port”可选。默认端口是3690,如果端口已经被占用,可以通过选项listen-port指定端口号。
注意:请不要关闭命令行窗口,关闭窗口会把 svn服务就停止了。
方法二,启动SVN服务为后台运行程序:
sc create svnserve binPath="c:\svn\bin\svnserveexe --service -r e:\svnroot\repos1" displayname= "Subversion"depend=Tcpip start= auto
说明一:
(1)sc是windows自带的服务配置程序。svnserve是服务的名称,可根据需求取名。
(2)参数binPath表示svnserve可执行文件的安装路径。
(3)--service表示以windows服务的形式运行,--r指明svnrepository的位置,service参数与r参数都作为binPath的一部分,因此与svnserveexe的路径一起被包含在一对双引号当中。
(4)displayname表示在windows服务列表中显示的名字,depend=Tcpip表示svnserve服务的运行需要tcpip服务,start=auto表示开机后自动运行。安装服务后,svnserve要等下次开机时才会自动运行。
说明二:
(1)binPath的等号前面无空格,等号后面有空格。displayname、depend、start也一样,service前面是--,不是- ,而r前面是-。
(2)若要卸载svn服务,则执行 scdelete svnserve 即可。
(3)从“sc”到“auto”是在同一个命令sc,必须写在同一行。
(4)启动服务命令:netstartsvnserve,停止服务命令:net start svnserve,也可以进入Windows提供的界面 *** 作SVNService服务了,即控制面板—>服务。
(5)如果路径中包括空格,一定要用“\”处理“"”号,例如上面的例子中如果svnserveexe在“c:\programfiles\svn\”中,则命令应该写为“binpath="\"c:\programfiles\svn\bin\svnserveexe\"
五、配置用户和权限
(1)修改svnserveconf,在e:\svn\repos1\conf目录下,用文本编辑器打开svnserveconf:
将:
# anon-access = read
# auth-access = write
# password-db = passwd
改为
anon-access = read
auth-access = write
password-db = passwd
注意说明:
anon-access等列前面是没有空格的。
anon-access = read表示没通过用户名密码登录的访问只有读的权限,如果改为none则没有用户名密码不能访问
auth-access = write表示通过用户名密码登录的有写的权限(当然读的权限也就有了)
password-db = passwd表示可以通过 用户名 = 密码 的方式在passwd文件中添加用户
(2)修改同目录的passwd文件,增加用户帐号:
将:
[users]
# harry = harryssecret
# sally = sallyssecret
添加帐号:
[users]
# harry = harryssecret
# sally = sallyssecret
admin = admin
添加一个admin账户,密码是admin。
六、初始化SVN,导入数据
选中要上传SVN的文件夹,“右键 ->TortoiseSVN -> Import” ,在d出对话框的“URL ofrepository”输入“svn://localhost/project1/”。在“Importmessage”输入注释,点击OK,要求输入帐号,输入账户admin和密码admin。
7
七,测试SVN
本地测试:新建一空文件夹test1,单击右键,选择“SVN Checkout”,在“URL of repository”中输入“svn://localhost/project1”。
其他机器测试:如果运行svnserve的主机IP地址是1234,则URL输入的内容就是“svn://1234/project1”。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/10776671.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-11
下一篇2023-05-11

发表评论

登录后才能评论

评论列表(0条)

    保存