Linux svn安装配置与钩子设置

Linux svn安装配置与钩子设置

一、安装

1、centos 下安装命令

yum install subversion

2、查看版本,是否安装成功

svnserve --version

二、配置

1.创建SVN目录

mkdir /home/svn/;
cd /home/svn/;

2.创建项目repos

svnadmin create /home/svn/repos;
cd /home/svn/repos/conf;

3.conf目录下文件(svnserve.conf、passwd、authz)

  1. svnserve.conf: 服务器配置文件
	 vim svnserve.conf
    #匿名访问的权限,可以是read,write,none,默认为read
	anon-access=none
	#使授权用户有写权限
	auth-access=write
	#密码数据库的路径文件
	password-db=passwd
	#访问控制文件
	authz-db=authz
	#认证命名空间,subversion会在认证提示里显示,并且作为凭证缓存的关键字
	realm=/home/svn/repos 
  1. passwd:用户配置文件
	vim passwd;
	[users]
	# harry = harryssecret
	# sally = sallyssecret
	test1 = 123456
	test2 = 123456
  1. authz:权限配置文件
	vim authz;
	[groups]
	admin = test1, test2   # 项目组包括两个用户test1,test2
	[/]
	@admin = rw    #读写操作
  1. 配置防火墙端口(如果需要):

    不一定每个人都需要设置,可以先测试后再看是否需要打开端口

    vi /etc/sysconfig/iptables;
    

    添加一下内容:

    -A INPUT -m state --state NEW -m tcp -p tcp --dport 3690 -j ACCEPT;
    

    保存后重启防火墙

    service iptables restart;
    

    或者也可以这样配置防火墙

    firewall-cmd --permanent --add-port=3690/tcp
    firewall-cmd --reload
    
  2. 查看svn

    a. 启动SVN

    svnserve -d -r /home/svn;
    

    b.查看SVN进程

    ps -ef|grep svn|grep -v grep;
    root 12568 1 0 14:40 ? 00:00:00 svnserve -d -r /home/svn
    

    c. 检测SVN端口

    netstat -ln |grep 3690;
    tcp 0 0 0.0.0.0:3690 0.0.0.0:* LISTEN
    

    d.停止重启SVN

    killall svnserve; //停止
    svnserve -d -r /home/svn;  //启动
    

6.客户端连接

windows下安装 Tortoisesvn 连接 svn://ip/repos

注意事项:个人在安装过程中出现的问题
URL ‘svn://ip/repos’ doesn’t exist
原因
如果服务器以:svnserve -d -r /home/svn/repos; // 启动
客户端 Tortoisesvn 连接 :svn://ip
如果服务器以:svnserve -d -r /home/svn; //启动
客户端 Tortoisesvn 连接 :svn://ip/repos

三、钩子设置

本文记录通过svn的钩子脚本实现本地提交svn后,自动同步代码文件到服务器的网站目录下,而不必手动同步。
假如现在有:

SVN版本库中的一个项目:/home/svn/repos
网站目录:/home/www/
我们先将SVN版本库中的一个项目checkout到网站目录:

svn co file:///home/svn/repos/ /home/www/

这时,网站目录已成为SVN的工作副本,接下来利用SVN的钩子让这个工作副本自动更新。
新建一个post-commit钩子:

vim /home/svn/repos/hooks/post-commit

添加以下代码:

#!/bin/sh
REPOS="$1"
REV="$2"
export LANG="zh_CN.UTF-8"    #防止乱码 
svn update /home/www/ --username test1 --password 123456 --no-auth-cache #设置登陆账号密码并不缓存

注:不要遗漏第一行的#!/bin/sh,否则post-commit会报代号255的错误。
保存后,修改文件权限为755,否则SVN无法调用执行:

chmod 755 /home/svn/repos/hooks/post-commit
OR:
chmod +x /home/svn/repos/hooks/post-commit

OK,至此,就完成了svn文件提交后自动同步更新到网站目录的代码了。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Go语言(也称为Golang)是由Google开发的一种静态强类型、编译型的编程语言。它旨在成为一门简单、高效、安全和并发的编程语言,特别适用于构建高性能的服务器和分布式系统。以下是Go语言的一些主要特点和优势: 简洁性:Go语言的语法简单直观,易于学习和使用。它避免了复杂的语法特性,如继承、重载等,转而采用组合和接口来实现代码的复用和扩展。 高性能:Go语言具有出色的性能,可以媲美C和C++。它使用静态类型系统和编译型语言的优势,能够生成高效的机器码。 并发性:Go语言内置了对并发的支持,通过轻量级的goroutine和channel机制,可以轻松实现并发编程。这使得Go语言在构建高性能的服务器和分布式系统时具有天然的优势。 安全性:Go语言具有强大的类型系统和内存管理机制,能够减少运行时错误和内存泄漏等问题。它还支持编译时检查,可以在编译阶段就发现潜在的问题。 标准库:Go语言的标准库非常丰富,包含了大量的实用功能和工具,如网络编程、文件操作、加密解密等。这使得开发者可以更加专注于业务逻辑的实现,而无需花费太多时间在底层功能的实现上。 跨平台:Go语言支持多种操作系统和平台,包括Windows、Linux、macOS等。它使用统一的构建系统(如Go Modules),可以轻松地跨平台编译和运行代码。 开源和社区支持:Go语言是开源的,具有庞大的社区支持和丰富的资源。开发者可以通过社区获取帮助、分享经验和学习资料。 总之,Go语言是一种简单、高效、安全、并发的编程语言,特别适用于构建高性能的服务器和分布式系统。如果你正在寻找一种易于学习和使用的编程语言,并且需要处理大量的并发请求和数据,那么Go语言可能是一个不错的选择。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值