svn仓库搭建
2022年9月29日大约 3 分钟
svn仓库搭建
* 首先输入rpm -qa | grep subversion 查看SVN是否已经安装过
yum install subversion 安装
* 输入rpm -ql subversion查看安装位置
* /usr/bin/svnversion --version 就可以查看svn的版本
* 创建svn版本库目录
mkdir -p /home/svn/my
svnadmin create /home/svn/my
* 进入/home/svn/my/conf目录(该svn版本库配置文件)
authz passwd 放到/home/svn 设置为公共文件 svnserve.conf引入该2文件即可
authz文件是权限控制文件
passwd是帐号密码文件
svnserve.conf SVN服务配置文件
完成下面整个操作 再到在本地获取仓库
设置帐号密码
passwd
在[users]块中添加用户和密码,
格式:帐号=密码
[users]
my = myssecret
sally = sallyssecret
bote = botessecret
设置权限
authz
在末尾添加如下代码:
[my:/]
dan=rw
w=r
意思是版本库的根目录dan对其有读写权限,w只有读权限。
用户组权限
[groups]
my1 = harry,my
my2 = sally
[my1:/]
@my1 = rw
@my2 = r
[my2:/]
@my2 = rw
bote = rw
注:
[/],表示根目录及以下,根目录是svnserve启动时指定的,我们指定为/home/svn,
[/]就是表示对全部版本库设置权限。
[my:/] 表示对版本库svntest设置权限
[my:/abc] 表示对版本库svntest中的abc项目设置权限
[my:/abc/aaa] 表示对版本库svntest中的abc项目的aaa目录设置权限
* 修改svnserve.conf文件
打开下面的几个注释:
anon-access = none #匿名用户不可操作
auth-access = write #授权用户可写
password-db = ../../passwd #使用哪个文件作为账号文件
authz-db = ../../authz #使用哪个文件作为权限文件
启动svn版本库
svnserve -d -r /home/svn/
* 查看svn服务是否正常启动,执行如下命令:
ps -ef|grep svn|grep -v grep
停止重启SVN
停止
killall svnserve
启动
svnserve -d -r /home/svn/
客服端链接
svn://192.168.x.x/my
然后,输入用户名密码;
* 开启自启动SVN服务器
打开/etc/rc.local文件
加入svnserve -d -r /home/svn/
* SVN提交文件自动更新到nginx的WEB目录
cd /home/svn/my/hooks
vi post-commit #编辑,添加以下代码
#!/bin/sh
#设定环境变量,如果没有设定可能会出现update报错
REPOS="$1"
REV="$2"
export LC_CTYPE="en_US.UTF-8"
SVN_PATH=/usr/bin/svn
#web目录,如果你的不同,可以改
WEB_PATH=/home/wwwroot/xjz
LOG_PATH=/tmp/svn_update.log #同步日志
echo `whoami`,$REPOS,$REV >> $LOG_PATH
#这里的用户随便一个就好
$SVN_PATH update $WEB_PATH --username 'username' --password '***'
#或者
#!/bin/sh
REPOS="$1"
REV="$2"
export LANG="zh_CN.UTF-8"
svn update /www/htdocs/vue-doc --username root --password root123 --no-auth-cache
* 添加脚本执行权限
cd /home/svn/my/hooks
chmod 777 post-commit
svnserve -d -r /home/svn/
* 进入WEB根目录, 创建SVN仓库副本:
cd /home/wwwroot
svn co svn://192.168.x.x/my --username my --password mypassword
svn co svn://120.78.219.51/xx.cn --username xxx --password xxxx
SVN命令行操作
添加新文件
svn add *
提交更新
svn ci -m 'up'
更新文件
svn update
忽略文件(未加入版本控制)
svn propset svn:ignore 'database.php' ./
svn ci -m 'ignore a directory called "database.php".'
忽略文件(已加入版本控制,先复制删除后,再添加)
#1、先把 database.php 文件备份成 database.php-tmp
svn export database.php database.php-tmp
#2、删掉原文件
svn rm database.php
#3、提交修改信息
svn ci -m 'Removing added file "database.php".'
#4、把 database.php-tmp 还原成 database.php
mv database.php-tmp database.php
#5、重新进行忽略步骤
svn propset svn:ignore 'database.php' ./
#6、提交忽略新修改
svn ci -m 'Ignoring a directory called "database.php".'
忽略文件夹
1.配置SVN默认编辑器
vi ~/.bash_profile
最后一行加上:
export SVN_EDITOR=vim # 定义svn editor为vim编辑
2.让配置生效
source ~/.bash_profile
3.设置忽略文件:
先切换到项目目录,如test
输入:
svn propedit svn:ignore . # .号需加上,代表当前目录;
输入需要忽略的文件/文件夹
如:
conf/db.php #代表忽略conf文件下db.php这个文件
uploads #代表忽略uploads这个文件夹
以上忽略的文件都是该项目目录的相对路径!
svn提交时把node_modules忽略掉
空白处右键>选中TortoiseSVN>设置(settings)>常规设置(General)>Subversion>编辑(edit)>在弹出的config文件中找global-ignores,复制一行下来,去掉global-ignores前的#。
如果是"文件夹" global-ignores = *node_modules
如果是文件 global-ignores = .project .git