UBUNTU SVN使用
来源:互联网 发布:需求分析软件 编辑:程序博客网 时间:2024/04/29 04:57
ubuntu12.04 SVN执行命令巨慢的解决方法
$sudo su
#mv /dev/random /dev/random_bak
#ln -sf /dev/urandom /dev/random
一、SVN安装
1.安装包
1.$
2.创建项目目录
$
$
$
3.创建svn文件仓库
$
4.导入项目到svn文件仓库
$
5.访问权限设置
修改
svnserve.conf
编辑svnserve.conf文件,把如下面行取消注释,并需要顶格
anon-access
auth-access
password-db
编辑passwd
[users]
andy
6.
$
7.检查是否正常启动
$
可以看到有一个端口为3690的地址,表示启动成功
(如果使用Apache连接,则跳过下步)
8.局域网访问,checkout出来SVN库的文件
svn
或者简写为:
svn
二、在Ubuntu下使用Apache配置Subversion
1.安装必要软件
$
2.修改apache配置文件/etc/apache2/mods-available/dav_svn.conf
<Location
DAV
SVNPath
AuthType
AuthName
AuthUserFile
#<LimitExcept
Require
#</LimitExcept>
</Location>
如果需要用户每次登录时都进行用户密码验证,请将<LimitExcept
当您添加了上面的内容,您必须重新起动
$
3.创建
$
它会提示您输入密码,当您输入了密码,该用户就建立了。“-c”选项表示创建新的/etc/subversion/passwd文件,所以user_name所指的用户将是文件中唯一的用户。如果要添加其他用户,则去掉“-c”选项即可:$
4.您可以通过下面的命令来访问文件仓库:
$
或者通过浏览器:http://hostname/svn/myproject
三、ubuntu
1、将文件checkout到本地目录
2、往版本库中添加新的文件
3、将改动的文件提交到版本库
$
4、更新到某个版本
$
$
$
5、删除文件
$
6、比较差异
7、查看文件或者目录状态
1)svn
8、解决冲突
$
四、同步更新
同步程序思路:用户提交程序到SVN,SVN触发hooks,按不同的hooks进行处理,这里用到的是post-commit,利用post-commit到代码检出到SVN服务器的本地硬盘目录,再通过rsync同步到远程的WEB服务器上。
知识点:
1、SVN的hooks
#
#
#
#
#
通过上面这些名称编写的脚本就就可以实现多种功能了,相当强大。
2、同步命令rsync的具体参数使用
3、具有基个语言的编程能力bash
post-commit脚本
编辑文件:sudo
注意:编辑完成post-commit后,执行:$
内容:
#!/bin/sh
export
sudo
或更加复杂的同步更新
#Set
SVN=/usr/bin/svn
WEB=/home/test_nokia/
RSYNC=/usr/bin/rsync
LOG=/tmp/rsync_test_nokia.log
WEBIP="192.168.0.23"
export
#update
$SVN
#If
if
then
fi
以上是具体的post-commit程序
注意事项:
1、一定要定义变量,主要是用过的命令的路径。因为SVN的考虑的安全问题,没有调用系统变量,如果手动执行是没有问题,但SVN自动执行就会无法执行了。
2、SVN
3、加上了对前一个命令的判断,如果update的时候出了问题,程序没有退出的话还会继续同步代码到WEB服务器上,这样会造成代码有问题
4、记得要设置所属用户,因为rsync可以同步文件属性,而且我们的WEB服务器一般都不是root用户,用户不正确会造成WEB程序无法正常工作。
5、建议最好记录日志,出错的时候可以很快的排错
6、最后最关键的数据同步,rsync的相关参数一定要清楚,这个就不说了。注意几个场景:
这里的环境是SVN服务器与WEB服务器是开的
把SVN服务器定义为源服务器
场景一、如果目的WEB服务器为综合的混杂的,像只有一个WEB静态资源,用户提交的,自动生成的都在WEB的一个目录下,建议不要用–delete这个参数
上面这个程序就是这样,实现的是源服务器到目的服务器的更新和添加,而没有删除操作,WEB服务器的内容会多于源SVN的服务器的
场景二、实现镜像,即目的WEB服务器与源SVN服务器一样的数据,SVN上任何变化WEB上一样的变化,就需要–delete参数
场景三、不需要同步某些子目录,可能有些目录是缓存的临时垃圾目录,或者是专用的图片目录(而不是样式或者排版的)要用exclude这个参数
注意:这个参数的使用不用写绝对路径,只要目录名称就行
建议用–exclude-from=/home/svn/exclude.list
exclude.list
.svn/
.DS_Store
images/
利用SVN的钩子还可以写出很多的程序来控制SVN
- Ubuntu下使用SVN
- Ubuntu下使用SVN
- Ubuntu下使用SVN
- Ubuntu下使用SVN
- Ubuntu下使用SVN
- ubuntu下使用SVN
- Ubuntu下使用SVN
- Ubuntu下使用SVN
- Ubuntu下使用SVN
- Ubuntu下使用SVN
- ubuntu下使用SVN
- ubuntu svn使用
- Ubuntu下使用SVN
- Ubuntu下使用SVN
- Ubuntu下使用SVN
- ubuntu下svn使用
- Ubuntu下使用SVN
- UBUNTU SVN使用
- 正向运动学和反向运动学
- 在VC6.0中配置opencv1.0
- 快速排序
- Android获取手机和系统版本等信息的代码
- Boolean satisfiability solving
- UBUNTU SVN使用
- Library Cache Latch和Shared Pool Latch
- ACE劫持了main函数导致链接错误
- 三大UNIX标准化汇总
- 散列分区删除分区的问题
- x265 (HEVC编码器,基于x264) 介绍
- Linux性能评测工具之一:gprof篇
- 06-EasyUI_使用控件ValidateBox验证表单域
- button和input type=button的区别及注意事项