svn代码管理工具linux,代码管理工具——SVN

SVN

版本控制的作用:记录若干文件内容变化,以便将来查阅特定版本修订情况。

版本管理工具发展简史,cvs-->svn-->Git(参考:http://luckypoem14.github.io/test/2012/04/24/scm-history/ )。

svn全称subversion,是一个开源版本控制系统(C/S架构),始于2000年;git(gitlab/GitHub)是linux创始人linus发起的,2005年发布,最初目的是更好管理linux内核代码, gitlab可以认为是一个开源的github,两者没有直接关系;git和svn不同在于git不需要依赖服务端就可以工作,即git是分布式的。

服务端安装和配置SVN

IP:192.168.8.131

系统:centos7

安装:

[root@linux ~]# yum install -y subversion

创建版本库:

[root@linux ~]# mkdir -p /data/svnroot/myproject

版本库初始化:

[root@linux ~]# svnadmin create /data/svnroot/myproject

[root@linux ~]# ll /data/svnroot/myproject/

总用量 8

drwxr-xr-x 2 root root 54 10月 30 18:55 conf

drwxr-sr-x 6 root root 233 10月 30 18:55 db

-r--r--r-- 1 root root 2 10月 30 18:55 format

drwxr-xr-x 2 root root 231 10月 30 18:55 hooks

drwxr-xr-x 2 root root 41 10月 30 18:55 locks

-rw-r--r-- 1 root root 229 10月 30 18:55 README.txt

进入配置文件目录:

[root@linux ~]# cd /data/svnroot/myproject/conf/

[root@linux conf]# ls

authz passwd svnserve.conf

##authz:控制权限

##passwd:密码文件

##svnserve.conf:仓库配置文件

配置用户及权限:

[root@linux conf]# vim authz

[groups]

admins = adai,user1

##admin:组名

##adai,user1:两个用户

[/]

##[/]:指定目录,“/”代表仓库的根目录,即/data/svnroot/myproject/

@admins = rw

##指定admins组所对应的权限

* = r

##指定others用户对应的权限

[myproject:/]

##myproject:项目名称,该方法适合SVN有多个项目(或有多个子项目)时使用

user1 = rw

配置用户密码:

[root@linux conf]# vim passwd

[users]

adai = 123456

user1 = 123456

##为了提高安全性,真是环境要设置复杂密码

配置仓库文件:

[root@linux conf]# vim svnserve.conf

[general]

anon-access = none

##指定匿名用户权限

auth-access = write

##指定认证用户权限

password-db = passwd

##指定用户密码文件

authz-db = authz

##指定用户权限文件

realm = /data/svnroot/myproject

##指定对用的仓库文件(绝对路径)

启动SVN:

[root@linux conf]# svnserve -d -r /data/svnroot/

##-d:表示后台运行

##-r:=restrict(限制、约束)限制只输出指定路径下的版本库

查看进程及端口:

[root@linux conf]# ps aux |grep svn

root 2543 0.0 0.1 162188 656 ? Ss 19:30 0:00 svnserve -d -r /data/svnroot/

[root@linux conf]# netstat -lntp |grep svn

tcp 0 0 0.0.0.0:3690 0.0.0.0:* LISTEN 2543/svnserve

注意: 在客户端进行连接之前要保证server端没有相关的防火墙规则拦截该服务。

客户端安装和使用SVN

Linux系统

IP:192.168.8.130

系统:centos7

安装:

[root@client ~]# yum install -y subversion

进入测试目录:

[root@client svntest]# pwd

/home/svntest

捡出代码(客户端1):

[root@client svntest]# svn checkout svn://192.168.8.131/myproject --username=adai

认证领域: /data/svnroot/myproject

“adai”的密码:

##如果该机器从未使用过SVN

##执行该命令后将在本机保存一个曾连接过的SVNserver的用户名和密码

##--username:指定用户

##192.168.8.131:服务端IP

-----------------------------------------------------------------------

注意! 你的密码,对于认证域:

/data/svnroot/myproject

只能明文保存在磁盘上! 如果可能的话,请考虑配置你的系统,让 Subversion

可以保存加密后的密码。请参阅文档以获得详细信息。

你可以通过在“/root/.subversion/servers”中设置选项“store-plaintext-passwords”为“yes”或“no”,

来避免再次出现此警告。

-----------------------------------------------------------------------

保存未加密的密码(yes/no)?yes

[root@client svntest]# ls

myproject

[root@client svntest]# ls myproject/

[root@client svntest]# ls -a

. .. myproject

[root@client svntest]# ls -a myproject/

. .. .svn

测试

[root@client svntest]# cd myproject/

[root@client myproject]# ls

[root@client myproject]# cp /etc/fstab ./

[root@client myproject]# ls

fstab

上传本地文件到服务端:

[root@client myproject]# svn add ./fstab

A fstab

##添加项目

[root@client myproject]# svn commit -m "add fstab"

正在增加 fstab

传输文件数据.

提交后的版本为 1。

##提交项目

##-m:=mark,做标记

在服务端使用user1作为用户登录(作为客户端2):

[root@linux myproject]# mkdir /home/svntest2

[root@linux svntest2]# pwd

/home/svntest2

[root@linux svntest2]# svn checkout svn://192.168.8.131/myproject --username=user1

A myproject/fstab

取出版本 1。

[root@linux svntest2]# ls

myproject

[root@linux svntest2]# cd myproject/

[root@linux myproject]# ls

fstab

##此时,在客户端1中提交的文件被同步到客户端2中

##再次上传新文件后可以使用命令:svn update进行同步

客户端1:

[root@client myproject]# vim test.txt

[root@client myproject]# ls

fstab test.txt

[root@client myproject]# svn add ./test.txt

A test.txt

[root@client myproject]# svn commit -m "add test.txt"

正在增加 test.txt

传输文件数据.

提交后的版本为 2。

客户端2:

[root@linux myproject]# ls

fstab

[root@linux myproject]# svn update

正在升级 '.':

已还原“test.txt”

版本 2。

[root@linux myproject]# ls

fstab test.txt

##注:此处update可以简写为up

客户端密码文件保存位置:

[root@client svn.simple]# pwd

/root/.subversion/auth/svn.simple

[root@client svn.simple]# ls

3e416d0d3d501036e774e769d63df7c7

[root@client svn.simple]# cat 3e416d0d3d501036e774e769d63df7c7

##如果在某客户端删除该文件,再次使用svn update进行同步时会提示输入root用户名和密码

##在此,直接回车,然后输入svn指定的用户和密码即可

删除文件:

[root@linux myproject]# svn delete filename //在本地删除

[root@linux myproject]# svn commit -m “delete filename” //在服务器上删除

[root@linux myproject]# svn update //把当前目录下的文件都更新到最新版

[root@linux myproject]# svn log //查看变更日志

Windows系统

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值