linux——SVN及项目上线

1、自行搭建svn服务器
2、使用码云的svn

                          安装svn

为什么安装 --- 管理代码用

1.安装svn服务器端

yum install subversion 从镜像下载安装svn服务器端

检测是否安装成功 echo $? svn --help

2.创建svn的项目库

cd /usr/local/ //进入目录,准备创建svn目录

mkdir svn //创建一个svn目录

chmod -R 777 svn //修改目录权限为777

svnadmin create /usr/local/svn/sunny //创建一个svn版本仓库sunny(sunny可以随便起名字)

cd /usr/local/svn/sunny/conf //进入sunny版本仓库下的配置文件目录

下面要修改这个目录下的三个配置文件

(1)vim svnserve.conf //配置版本库信息和用户文件和用户密码文件的路径、版本库路径把

# anon-access = read
 # auth-access = write
 # password-db = passwd

//这四行,前面的#号和空格去掉(注意去掉#要顶格写,不要留有多余空格),变成

anon-access = none //改成none
auth-access = write
password-db = passwd
realm = sunny //改成自己的版本库
保存

(2)vi authz //文件,创建svn组和组用户的权限
[groups]
sunny = gep,wce //创建一个sunny的组,并指定两个用户gep和wce

[/] //制定根目录下的权限
@sunny = rw //sunny组用户权限为读写

  • = r //其他用户只有读权限
    保存退出

(3) vi passwd //创建或修改用户密码
[users]
gep = 123456 //用户名为gep的用户的密码为123456
wce = 123456 //。。。
保存退出

启动svn:
svnserve -d -r /usr/local/svn/ //这里采用多版本库的方式启动 如果是单版本库 可以svnserve -d -r /usr/local/svn/sunny
添加一行

然后要设置自启动

vi /etc/rc.d/rc.local 打开自启动文件添加

/usr/bin/svnserve -d -r /usr/local/svn/

到此为止可以从服务端检出文件了.

svn命令:

netstat -tnl |grep :3690 查看svn是否启动

ps aux |grep 'svn' 查找所有svn启动的进程

kill -9 2505 杀死2505这个查找到的svn进程(不要真的杀死)

svn的具体使用

1.代码库的 checkout (只要执行一次)
svn checkout svn://192.168.1.134/sunny

2.1文件的增加

2.1.1物理增加a.php 2.1.2 svn add 2.1.3 svn commit -m

2.2文件的修改

(物理增加a.php && svn add 已经操作过了) svn commit -m

2.3文件的删除
(物理增加a.php && svn add 已经操作过了) 2.3.1 svn delete 2.3.2 svn commit -m

2.4文件的更新
svn up

3.删除代码库
rm -rf sunny

以下使用

检出命令:下载版本库 (如果错误,请检查防火墙)

svn checkout svn://linux的ip/版本库名称

常用命令:

svn add 文件名 //新建文件并添加到svn

svn commit -m "注释" xxx.php //提交文件

svn up //更新文件

####################################设置svn自动更新,不需要在手动去做了#####################

自动更新

在vi /usr/local/svn/????/hooks/post-commit中加入

!/bin/sh

设置一些变量

SVN=/usr/bin/svn

WEB=/你要更新的目录

export LANG=en_US.UTF-8

SVN updateWEB --username svn用户名 --password 密码

其中SVN=右边改成 svn 命令位置 一般默认为/usr/bin/svn

WEB=右边改成你实际的web目录

赋予可执行权限

chmod 777 /usr/local/svn/sunny/hooks/post-commit

安装完毕

//---------------------------------------自行掌握

svn add *.php //(添加当前目录下所有的php文件)

svn delete test.php //删除test.php

svn log test.php //查看test文件的log信息

svn cleanup //清理当前目录

=========================================================================
其他操作

svn up更新

svn switch --relocate svn://192.168.1.253 svn://172.19.10.250 //重新定位SVN版本库地址

// SVN版本库起动方式,现在SVN下面有 sunny、test 两个版本库

1:单版本库起动 svnserve -d -r /usr/local/svn/sunny

2:多版本库起动 svnserve -d -r /usr/local/svn

区别在于起动svn时候的命令中的启动参数-r指定的目录。

限制不同的用户对不同的版本库操作权限,修改版本库中的conf目录下的 authz文件

以配置 sunny 版本库为例
vi authz
[groups]
teacher = sunny,sunny1
[sunny:/] //指定版本库跟目录下的权限
@teacher = rw //teacher组用户权限为读写

  • = r //其他用户只有读权限
    保存退出

vi passwd 设置组中用户的账号和密码
[users]
sunny = 123456
sunny1 = 123456

1、启动svn:
svnserve -d -r /usr/local/svn/

如果出现,这样的错误信息,“svnserve: 不能绑定服务器套接字: 地址已经被使用”
那先把svnserve进程干掉。
具体做法是
ps -aux #查看进程,svnserve的pid为16663 kill -9 16663 #干掉svnserve
再次运行$ svnserve -d -r /var/www/svn

2、如何设置一个组的用户可读写,其它用户只能读取
没有输入密码禁止获取版本库

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容