首页 » Linux基础 » svn的简单使用

svn的简单使用

 

1.SVN基础
安装Subversion,
yum install subversion -y

创建版本库,使用svnadmin命令可创建服务器版本库
svnadmin help 查看管理工具帮助
用法:svnadmin 命令 /版本库路径 [选项]
命令:create 创建一个新的版本库

mkdir /var/svn
svnadmin create /var/svn/project1
svnadmin create /var/svn/test

导入项目代码
使用svn命令将项目代码导入到版本库中,import执行导入操作,-m选项设置说明性的字符串
cd /etc/init.d/
svn import ./ file:///var/svn/project1/init.d -m "init"
svn list file:///var/svn/project1/init.d

svn的认证与授权:使用内置的认证机制,服务器会根据版本库目录下的conf/svnserve.conf文件中的策略实现权限的控制

cat /var/svn/project1/conf/svnserve.conf
[general]
anon-access=none 拒绝匿名用户访问
auth-access=write 经过认证的账户权限为可写权限
password-db=passwd 账户名称与密码的存放文件名,该文件在conf目录下
authz-db=authz 基于路径的访问控制文件名,可以对目录或者文件设置权限

在passwd中设置账户信息,在authz文件中需要设置访问控制权限
cat /var/svn/project1/conf/passwd
[groups]
admins=harry,sally
[/]
@admins=rw
*=r

svnserve服务
svnserve命令即可启动svn服务进程:
-d 以守护进程方式运行svnserve
--listen-port=port 监听的端口,默认为3690
-r root 设置虚拟路径,默认客户端要指定绝对路径访问库

svnserve -d

svnserve运行后,会将所有版本库发布至网络。客户端需要指定绝对路径访问版本库
当仅希望发布一个版本库时,可以使用相对路径访问:svnserve -d -r /var/svn/project1

2.客户端操作
访问方式:本地磁盘 SVN Web

客户端命令行工具
svn 命令 [选项]
--password 密码
--username 用户名
--revision 指定要检查的特定版本

checkout命令
checkout URL[@REV] [PATH]
从服务器版本库中复制一份到本地

mkdir /tmp/mine
cd /tmp/
svn checkout file:///var/svn/project1/ mine

commit命令
在本地修改班底副本中的代码后,commit可以提交改修改,原子事务提交

update命令
将服务器上其他人修改的代码更新到本地

svn commit -m "add modified"
svn ci -m "node"
svn  update

查看版本库信息
info命令:查看版本仓库信息
log命令:查看版本修改历史

add命令
echo “echo test”>>test.sh
svn add test.sh
svn list svn://localhost/
svn commit -m "add test.sh"
svn list svn://localhost/

del命令
svn del test.sh
ls test.sh
svn list svn://localhost
svn commit -m "del test.sh"
svn list svn://localhost

mkdir命令:在本地版本库中添加新目录
svn mkdir test
cd test
echo “add test file”>abc.txt
svn add abc.txt
svn list svn://localhost
svn list svn://localhost/test
svn commit -m "mkdir and add file"
svn list svn://localhost
svn list svn://localhost/test/

diff命令:数据对比

echo "add test file">killall
svn diff killall 对比单个文件
svn diff 对比所有文件

cat命令:查看版本库数据的内容

版本回滚:
revert命令:本地副本修改后,但未commit提交修改是回滚数据
merge命令:本地副本提交后,使用该命令回滚

3.SVN多人协同案例
1.创建项目
yum install -y subversion
mkdir /var/svn
svnadmin create /var/svn/project
cd /var/svn/project/conf
vim svnserve.conf
--------------------
[general]
anon-access=read
auth-access=write
password-db=passwd
authz-db=authz
--------------------

vim passwd
--------------------
[users]
harry=pass
tom=pass
--------------------

vim authz
--------------------
[/]
harry=rw
tom=rw
--------------------
初始化数据
cd /etc/rc.d/init.d/
svn import file:///var/svn/project -m "Init Data"
service svnserve start

开发者初始化本地副本(user1和user2两个账户)
cd /var/tmp
svn --username harry --password pass co svn://127.0.0.1/var/svn/projectharry
svn --username tom --password pass co svn://127.0.0.1/var/svn/projecttom

修改副本:
Harry修改自己的副本
cd /var/tmp/harry
sed -i '1a###test####' sshd
svn ci -m "ssd was modified"

tom修改自己的副本
cd /var/tmp/tom
sed -i '1a###test####' atd
svn ci -m "atd was modified"

4.备份版本库
使用dump指令备份
svnadmin dump /var/svn/project/ >project.bak

使用load指定还原数据库
svnadmin create /var/svn/project2
svnadmin load /var/svn/project2 <project.bak

原文链接:svn的简单使用,转载请注明来源!

0