代码发布方案(利用svn钩子)

使用难点:bat脚本/shell脚本

服务器搭建svn

下载svn地址:https://osdn.net/projects/tortoisesvn/storage/1.10.1/Application/TortoiseSVN-1.10.1.28295-x64-svn-1.10.2.msi/

将svn安装到服务器和本地机器。

服务器准备工作

创建一个centrep和config文件夹,假设其绝对路径为 /aa/centrep和/aa/config

以下操作window和linux并无多大差异

进入 /aa/centrep 文件夹,执行以下命令创建版本库

svnadmin create project

将project/conf/ 下的两个文件authz  passwd移动到/aa/config文件夹下,

修改project/conf/svnconfig.conf,内容如下

##在这个标签下添加
[general]
## none 禁止匿名访问
anon-access = none

## 允许授权访问
auth-access = write

##配置账号密码
password-db = /bb/config/passwd

##配置账号权限
authz-db = /bb/config/authz

配置/aa/config下的两个文件

 passwd

[users]
name = pw

authz  (rw 读写权限)

[project:/]
name = rw

返回到/aa/centrep 目录,执行以下命令启动svn服务

svnserve -dr ./

在你项目的运行目录下执行下面的命令,按下回车后会让你输入计算机的密码,这里可以直接按回车,

svn co svn://localhost/project --username=name --password=pw

然后保留项目下的.svn文件,删除其他所有文件(谨慎操作,视自己情况而定,服务器的配置文件记得单独管理)

 

重点来了,在/aa/centrep/project/hooks/下新建post-commit文件,window系统带上.bat的后缀,然后在里面编写,

svn update --username name --password pw .svn文件所在的目录

这个其实就是脚本,在有东西提交到这个仓库的时候触发,这个脚本的含义就是更新这台服务器的代码,重新启动项目的脚本视自己情况而定,(有路径最好全部用绝对路径)

好了,服务器配置完事。

本地机器

相信本地机器上已经安装好了svn了

然后我们切换到我们的项目路径,

鼠标右键 SVN checkout 没有的自行百度(如何用命令行使用 svn checkout )

在URL of repository 下输入

svn://你的服务器地址/project

点击ok,然后输入账号密码会拉取下一个文件夹,进入该文件夹,将.svn文件放到项目的目录下,

右键 svn commit (弹出对话框来后记得选中所有,太多的话可以选择第一条,然后拉到最下面,按住shift键选择最红一条,点击多选框,就可以去全部选定了),点击ok,就可以将当前项目推到服务器并自动执行我们写的脚本了,

最后

最然比较麻烦,但没有什么难点,搭建成功之后简直爽的不要不要的,服务器都不用登陆,将项目提交之后就可以供给别人测试,自己在本地开发新功能,修改一点也可以更新哦,

ps:我们的项目管理工具是git,如果你用的svn~~反正我们没用,啊哈哈
 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用 SVNKit 可以在 Java 中操作 SVN 代码仓库,包括拉取代码、提交代码、查看日志等等。下面是一个简单的示例代码,演示如何使用 SVNKit 拉取 SVN 代码: ```java import org.tmatesoft.svn.core.*; import org.tmatesoft.svn.core.auth.*; import org.tmatesoft.svn.core.wc.*; import java.io.File; public class SVNTest { public static void main(String[] args) { // SVN 用户名和密码 String username = "your_username"; String password = "your_password"; // SVN 代码仓库地址 String svnUrl = "svn://svnserver/svn/repo"; // 本地代码保存路径 String localPath = "/path/to/local/folder"; // 初始化 SVN 客户端管理器 SVNClientManager clientManager = SVNClientManager.newInstance(); // 设置 SVN 用户名和密码 ISVNAuthenticationManager authManager = SVNWCUtil.createDefaultAuthenticationManager(username, password); clientManager.setAuthenticationManager(authManager); // 创建本地代码保存路径 File localFolder = new File(localPath); if (!localFolder.exists()) { localFolder.mkdirs(); } try { // 拉取代码到本地 SVNURL svnUrlObj = SVNURL.parseURIDecoded(svnUrl); SVNUpdateClient updateClient = clientManager.getUpdateClient(); updateClient.setIgnoreExternals(false); updateClient.doCheckout(svnUrlObj, localFolder, SVNRevision.HEAD, SVNRevision.HEAD, SVNDepth.INFINITY, true); System.out.println("SVN code checkout complete."); } catch (SVNException e) { e.printStackTrace(); } } } ``` 需要注意的是,使用 SVNKit 操作 SVN 代码仓库需要导入相应的依赖包,具体可以参考 SVNKit 的官方文档。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值