`
lhkzyz
  • 浏览: 347737 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

linux 安装svn,并设置钩子来同步更新

阅读更多
linux安装svn下载

http://subversion.tigris.org/downloads/subversion-1.6.6.tar.gz
和 http://subversion.tigris.org/downloads/subversion-deps-1.6.6.tar.gz

1./configure --prefix=/opt/svn --without-berkeley-db --with-zlib=/usr/local/subversion-1.6(此处指明位置)
     (--prefix是指的安装目录,--without是不用apche 最后是使用依赖包)
2.make &&make install
3,在etc/profile 里面加入环境变量
SVNPATH=$PATH:/opt/subversion/bin

4.source profile 使环境变量生效
5,检查版本 svn --version  svnserve --version(注意是两个横)

6.建立版本库目录  选择一个目录之后 建立   mkdir -p svn
cd svn 然后建立测试库 mkdir -p svntest

7.建立版本库
svnadmin create svntest

8.修改配置文件
cd svntest/conf
ll
-rw-r--r-- 1 root root 710 08-25 09:40 authz
-rw-r--r-- 1 root root 325 08-25 09:38 passwd
-rw-r--r-- 1 root root 1449 08-25 09:36 svnserve.conf

vi svnserve.conf

anon-access = none
auth-access = write
password-db = passwd
authz-db = authz

vi authz
[svntest:/]
lipeng = rw
#给svntest仓库添加一个名称为lipeng 的用户,权限为可写。

vi passwd
lipeng = 123456
为这个设置密码
svnserve.conf
(注意:这只是在svntest下生效的用户名密码,也可以统一写到svn/conf/authz和password里面,就相当于全局的,只要在版本库中的
引入即可)

9.启SVN服务,并指定SVN的根目录:
[root@youxia201 test]# svnserve -d -r /usr/local/svn/
-r指定服务器的根目录
-d表示在后台运行

服务已经正常起来:
[root@youxia201 test]# netstat -tunlp | grep svn
tcp        0      0 0.0.0.0:3690                0.0.0.0:*                   LISTEN      8646/svnserve

10、开放服务器端口

svn默认端口是3690,你需要在防火墙上开放这个端口。

      /sbin/iptables -A INPUT -i eth0 -p tcp --dport 3690 -j ACCEPT

      /sbin/service iptables save

你也可以通过svnserve的--listen-port选项来指定一个已经开放的其他端口,不过这样的话客户端使用也必须家上端口,如svn://192.168.1.200:9999/.

11,通过 netstat -tunlp | grep svn  找到进程id ,kill -9 id掉
svnserve -d -r /usr/local/svn/ --listen-port 843 用这个端口打开

然后重新启动就可以了

12.由于svn服务器和客户端是不一样的,所以不能从服务器看到源文件,请注意
但是可以在linux下新建一个文件夹,然后执行命令 svn checkout svn://192.168.1.200:9999/ 会提示输入linux终端的密码,以及svn用户名以及密码

二,设置钩子

我们知道要把svn的内容更新到web目录需要手动的svn up,但是今天笔者教你自动更新web目录的方法,我们要在svn版本库中配置钩子来实现,就是创建一个post-commit的配置文件,对其进行简单的配置,简简单单的四步就可以实现Linux下SVN自动更新web目录配置。

第一步:建立你的web程序目录
mkdir /var/www/html/test

   进入/var/www/html/test目录。
   svn checkout svn://121.14.177.178:843/svntest 不重命名文件夹,直接在当前目录下检出
    svn checkout svn://121.14.177.178:843/svntest test 检出文件并且重命名文件夹
  
第二步:在项目库的 hooks/ 目录下新建 post-commit 文件 【钩子脚本】
添加脚本内容如下:
#!/bin/sh
SVN=/usr/bin/svn           #这里配置的是svn安装bin目录下的svn文件
WEB=/var/www/html/test     #要更新的目录
$SVN update $WEB --username xxx --password xxx (此版本是linux下,windows下是.bat,写法少有不同)
其中SVN=右边改成 svn 命令位置
WEB=右边改成你实际的web目录
第三步:让post-commit有执行的权限 chmod 777 post-commit
第四步:这里就已经完成了,第四步就是测试了。
说明:
#!/bin/sh 说明是执行shell命令
export LANG=zh_CN.GBK 是为了解决svn post commit 中文乱码,设置本地化编码,因为我的系统为GBK编码,SVN默认是UTF-8编码,如果不设置将会出现错误,而执行不成功,错误标识为svn: Can't convert string from native encoding to 'UTF-8'
/usr/bin/svn update --username lxy --password 123456 /var/www/myproject 执行更新操作
如果提示:post-commit hook failed (exit code 255) with no output赋予post-commit文件可执行权限
如果您的默认编码就是UTF-8的,要上传中文文件,先将文件另存为UTF-8格式在提交
0
4
分享到:
评论

相关推荐

    linux 安装svn并实现本地同步服务器

    本文将指导读者在 Linux 环境下安装 SVN(Subversion),并使用钩子脚本实现本地提交后自动同步代码文件到服务器的网站目录下。 安装 SVN 首先,使用 yum 命令安装 SVN: `yum install subversion` 安装完成后,...

    Linux钩子配置(SVN)

    3. **Linux下SVN钩子配置步骤** - 配置前的准备 - 创建钩子脚本 - 设置权限 - 测试钩子脚本 4. **Java项目中的SVN钩子应用** - SVN与Java项目的集成 - 使用JRebel进行热部署 5. **常见问题及解决方案** #### ...

    linux下\svn备份与同步

    总的来说,Linux下的svn备份与同步涉及到仓库的创建、权限配置、同步管理以及数据备份与恢复。理解和掌握这些操作对于维护稳定的版本控制环境至关重要。通过定期备份和同步,可以确保在出现意外情况时能够迅速恢复...

    Linux环境下配置同步更新的SVN服务器(word文档)

    ### Linux环境下配置同步更新的SVN服务器 #### 一、概述 版本控制系统是软件开发过程中不可或缺的一部分,它帮助团队管理代码的变化历史,并提供了一个协作的平台。Subversion(SVN)作为一款开源的集中式版本控制...

    svn同步数据

    在以上配置完成后,每次在svn中提交代码时,通过`post-commit`钩子脚本,系统会自动更新Web服务器上的文件,实现了svn与Web服务的实时同步,这对于开发团队协作和部署是非常有用的。在实际操作中,应注意安全性和...

    Linux下SVN服务器自动更新文件到Web目录的方法

    总结,Linux下设置SVN服务器自动更新到Web目录涉及的关键技术点包括:SVN的安装与配置、钩子机制的理解、Shell脚本的编写以及文件权限的管理。这个过程对于提升开发效率,保证网站内容与源码库的一致性具有重要意义...

    SVN安装配置及使用说明

    2. **更新(Update)**: 在本地工作副本中,执行`svn update`命令同步远程仓库的最新更改。 3. **提交(Commit)**: 对本地修改进行提交,使用`svn commit -m "提交信息"`。 4. **添加(Add)**: 新增文件或目录到版本...

    linux下SVN配置实现项目目录自动更新以及源码安装的操作方法

    本篇文章将详细讲解如何在Linux系统下配置SVN以实现项目目录的自动更新,以及如何进行SVN的源码安装。 ### 1. 配置SVN自动更新 在开发过程中,当团队成员向SVN服务器提交更新时,服务器上的项目目录通常需要手动...

    SVN安装配置教程(带视频教程)

    SVN,全称为Subversion,是一...通过这份教程,你应该能够成功安装并配置SVN,掌握基本的客户端操作,并理解SVN如何助力团队协作。结合视频教程和书本资源,你可以进一步提升SVN的使用技巧,提升软件开发的效率和质量。

    svn的安装与使用带截图

    4. **更新同步**:用`svn update`命令获取仓库中的最新版本,同步到本地。 5. **查看状态**:使用`svn status`检查当前工作副本的状态,了解哪些文件有改动。 6. **解决冲突**:当多人同时修改同一文件时可能出现...

    svn(教程+安装包)

    首先,你需要下载并安装SVN服务器软件。通常,对于Windows用户,可以选择VisualSVN Server,而对于Linux或macOS用户,可以使用Apache Subversion。 安装过程如下: 1. **下载安装包**:根据你的操作系统选择合适的...

    SVN的安装和配置教程资料

    - **更新(Update)**:将版本库的最新更改同步到工作副本。 - **冲突(Conflict)**:当多人同时修改同一部分代码时可能出现的情况。 - **分支(Branch)**:创建一个独立的开发线,允许并行开发而不会影响主...

    SVN1.4 chm手册

    2. **安装与配置**:详述了如何在不同操作系统上安装SVN服务器和客户端,包括Windows、Linux和Mac OS X等,并指导用户配置SVN服务器,如设置访问权限、备份策略等。 3. **命令行工具**:详细介绍了SVN的命令行界面...

    SVN安装及使用教程

    通过学习上述SVN的基本操作,您应该能够顺利安装并使用SVN进行版本控制。记住,熟练掌握SVN是团队协作开发中的重要技能,能有效提高工作效率,防止代码丢失,同时便于追踪和修复错误。在实际使用中,不断实践和探索...

    SVN笔记学习

    - **安装SVN**: 在Linux系统中,通常通过包管理器来安装SVN,如在Ubuntu或Debian上使用`apt-get install subversion`,在CentOS或Fedora上使用`yum install subversion`。 - **创建SVN仓库**: 使用`svnadmin ...

    SVN安装试用手册

    1. **安装插件**:Eclipse有内置的SVN支持,但需要通过"Help" -> "Install New Software"来安装Subversive或Subclipse插件。 2. **配置SVN连接**:在Eclipse中,设置SVN的服务器地址、认证信息,建立新的SVN连接。 3...

    服务器安装文件——SVN

    2. **SVN客户端**:对于其他机器,需要安装SVN客户端来与服务器交互。常见的客户端有TortoiseSVN(Windows)、SmartSVN(跨平台)等。客户端主要用于以下操作: - **签出(Checkout)**:获取服务器上的最新代码...

    【SVN】服务端和客户端安装包

    SVN可以通过配置文件调整行为,如设置日志大小限制、邮件通知、钩子脚本等。此外,版本库的备份和迁移也是日常管理的重要部分,可通过导出导入选项实现。 6. 安全性和权限控制: SVN支持用户和组级别的权限控制,...

    SVN安装配置摘要

    这篇“SVN安装配置摘要”将涵盖SVN的基本概念、安装过程、配置步骤以及与其他工具的集成,帮助你深入理解并熟练使用SVN。 **一、SVN基本概念** 1. **仓库(Repository)**:SVN的核心是仓库,存储所有版本的历史记录...

Global site tag (gtag.js) - Google Analytics