以下的配置文件,开头都不能有空格

安装:
yum install subversion

验证:
svnserve --version

代码库创建:(类似,可以建立多个仓库)[repo]
mkdir -p 绝对路径
svnadmin create 绝对路径/仓库名称
as:
mkdir -p /opt/svn/repositories
svnadmin create /opt/svn/repositories
执行上面的命令后,自动建立repositories库,
查看/opt/svn/repositories 文件夹发现包含了conf, db,format,hooks, locks, README.txt等
文件,说明一个SVN库已经建立。

配置代码库:
进入上面生成的文件夹conf下,进行配置
cd 绝对路径/conf
as:
cd /opt/svn/repositories/conf

用户密码passwd配置:
[root@localhost password]# cd /opt/svn/repositories/conf
[root@admin conf]# vim passwd
[users]
# harry = harryssecret
# sally = sallyssecret
#增加对,用户名=密码
#as:
lin3615=lin3615
fuck=fuck

权限控制authz配置:
[root@admin conf]# vim authz
#设置[/]代表根目录下所有的资源
[/]
#用户名=权限 as
lin3615=rw
fuck=rw
服务svnserve.conf配置:
[root@admin conf]# vim /绝对路径/svnserve.conf
[general]
#匿名访问的权限,可以是read,write,none,默认为read
anon-access=none
#使授权用户有写权限
auth-access=write
#密码数据库的路径
password-db=passwd
#访问控制文件
authz-db=authz
#认证命名空间,subversion会在认证提示里显示,并且作为凭证缓存的关键字
# realm=/仓库绝对路径/仓库名
#as:
realm=/opt/svn/repositories

配置防火墙端口:
[root@localhost conf]# vim /etc/sysconfig/iptables
添加以下内容:
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3690 -j ACCEPT
保存后重启防火墙
[root@localhost conf]# service iptables restart

启动SVN:
#svnserve -d -r /绝对路径/仓库名 [--listen-port 端口号]
#as:
svnserve -d -r /opt/svn/repositories --listen-port 3690
同理,可以启动多个指定的仓库,只要端口不同即可

查看SVN进程:
[root@localhost conf]# ps -ef|grep svn|grep -v grep

停止重启SVN:
[root@localhost password]# killall svnserve //停止
启动:
# svnserve -d -r /绝对路径/仓库名
#as:
[root@localhost password]# svnserve -d -r /opt/svn/repositories // 启动

测试:(可以从这里导入项目,方法一)
客户端连接地址:svn://ip:端口号
用户名/密码: lin3615/lin3615

如果连接失败,则
关闭防火墙
1) 临时生效,重启后复原
开启: service iptables start
关闭: service iptables stop
2) 永久性生效,重启后不会复原
开启: chkconfig iptables on
关闭: chkconfig iptables off

方法二导入项目:(从svn服务器本身导入,即把别的文件[夹]导入到svn仓库中去)
svn import 项目绝对路径 svn://ip[:端口号] -m "comment"
as:
svn import /var/www/html/test svn://192.168.0.8:3690 -m "从目录test导入到svn仓库"

把svn仓库项目导出到指定的目录
svn co svn://ip /绝对路径/目录/
as
svn co svn://192.168.0.8:3690 /var/www/html/test/

svn仓库与指定的目录同步,(如web目录)
打开仓库目录中的hooks目录,建立 post-commit:
as:
打开 /opt/svn/repositories/hooks下的 post-commit,即建立这样的文件
加入
#!/bin/sh

export LANG=zh_CN.UTF-8 #如果是 GB2312,则为 zh_CN.GB2312,这里统一下文件编码
cd /var/www/html/test #要与同步的目录绝对路径
/usr/bin/svn cleanup # svn路径
/usr/bin/svn up /var/www/html/test --username "用户名" --password "密码"
#用户和密码是在 passwd指定的
若出现:post-commit错误代码255,应该是post-commit脚本权限不对,赋予777权限即可

如果在本地上传代码时,出现类似
svn: Can't convert string from 'UTF-8' to native encoding:
svn: ?\230?\150?\176?\229?\187?\186?\\163.txt
svn: Working copy '/var/www/html/test' locked
svn: run 'svn cleanup' to remove locks (type 'svn help cleanup' for details)

则:
export LC_CTYPE="zh_CN.UTF-8"
根据你的系统字符集设置变量,如果 zh_CN.UTF-8 不行,有可能要改成 GB2312:
也有可能为:
export LANG="zh_CN.UTF-8"

接着执行 svn cleanup,要先切换到指定的目录,即要同步的目录,如 /var/www/html/test中
这样就可以了

linux的SVN搭建与同步的更多相关文章

  1. linux下svn 搭建

    linux 下SVN搭建加自动提交更新到指定目录一.安装#yum install subversion       yum安装SVN#mkdir -p /opt/svn/repos       创建s ...

  2. 转载-Linux下svn搭建配置流程

    Linux下svn搭建配置流程     一.    源文件编译安装.源文件共两个,为: 1.   下载subversion源文件 subversion-1.6.1.tar.gz http://d136 ...

  3. LINUX安装SVN+添加自动同步+远程下载最新代码

    LINUX安装SVN+添加自动同步+远程下载最新代码---------------------1. 新建一个用户:svnroot ,以下操作非特别说明皆为root用户操作--------------- ...

  4. 【SVN】Linux下svn搭建配置全过程——初学者轻松上手篇

    版本控制主要用到的是git和svn,其中svn界面化使用操作简单,本篇简单介绍SVN搭建配置全过程. 1. 下载并安装 yum install subversion 查看版本 svnserve --v ...

  5. Linux上svn搭建

    安装svn yum -y install subversion 2.创建版本库 svnadmin  create /home/svn/test 3.配置用户 vim /home/svn/test/co ...

  6. Linux服务器svn与项目同步

    命令:svn checkout svn://192.168.67.131/trunk/w1

  7. centos搭建svn 服务器 并同步到web 目录(总结)

    配置搭建步骤: Linux平台的SVN服务器的配置及搭建 从本地提交代码到svn代码库. 将代码库中代码同步到web目录: 1.在web目录中checkout版本库 进入/home/www目录下  ( ...

  8. SVN+post-commit 搭建自动同步版本库

    一.需求. 本地文件上传到测试环境svn,测试环境同步到生产环境rsync.开发环境与测试环境与生产环境分离. 二.搭建SVN服务器. yum -y install subversion && ...

  9. Linux下SVN服务器搭建配置

    Linux下SVN服务器搭建配置 1.SVN服务安装 yum install subversion 2.创建SVN代码仓库 mkdir /data/svn svnadmin create /data/ ...

随机推荐

  1. 网络IPC:套接字之非阻塞和异步I/O

    通常,recv函数没有数据可用时会阻塞等待.同样地,当套接字输出队列没有足够空间来发送消息时函数send会阻塞.在套接字非阻塞模式下,行为会改变.在这种情况下,这些函数不会阻塞而是失败,设置errno ...

  2. win7系统激活最简单方法

    利用激活工具快速激活WIN7系统! 工具/原料 小马Oem7.未激活的WIN7系统 步骤/方法 1 复制BT种子 http://www.pccppc.com/download/oem7F.rar粘贴到 ...

  3. MySQL_前缀索引_建立

    -- 查看出现频率select count(*) as cnt,cityfrom sakila.city_demo group by city order by cnt desc limit 10; ...

  4. 网口扫盲三:以太网芯片MAC和PHY的关系

    转载:http://www.cnblogs.com/jason-lu/articles/3195473.html   问:如何实现单片以太网微控制器? 答:诀窍是将微控制器.以太网媒体接入控制器(MA ...

  5. ASP.NET MVC and jqGrid 学习笔记 6-增删改操作

    程序结构: Member.cs CRUD.cshtml CRUD.js HomeController 一.Model public class Member { [Key] public int No ...

  6. MPMoviePlayerController过期导致视频播放时间条颠倒及AVPlayerViewController的用法

    MPMoviePlayerController虽然好用 但是过期了 所以可能会导致一些莫名的问题  ,比如说下面时间条的问题 但我们可以使用AVPlayerViewController来实现相应的想过 ...

  7. SQL Server:替换文本中的回车和换行符

    --替换回车符 update master_locationSET street_number = REPLACE(street_number, CHAR(13), '') --替换换行符 updat ...

  8. C++编译器的函数名修饰规则

    我们知道在C++中有函数重载这样一个东西,当我们定义了几个功能类似且函数名是一样的函数的时候,只要它的参数列表不同,编译是可以通过的,但是在C中是不可以的. double add(double a, ...

  9. [转]Maintain File Upload Control on Postbacks

    本文转自:http://www.ironspeed.com/articles/Maintain%20File%20Upload%20Control/Article.aspx Introduction ...

  10. [改善Java代码]优先选择线程池

    在Java1.5之前,实现多线程编程比较麻烦,需要自己启动线程,并关注同步资源,防止线程死锁等问题,在1.5版本之后引入了并行计算框架,大大简化了多线程开发. 我们知道线程有5个状态:新建状态(New ...