代码管理平台—svn

1、什么是svn?

SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS迁移到Subversion。说得简单一点SVN就是用于多个人共同开发同一个项目,共用资源的目的。 官网:https://tortoisesvn.net/

2、Linux服务端(192.168.6.120)下安装使用svn

输入命令:

[root@jin-120 ~]# yum install -y subversion

创建版本库:

[root@jin-120 ~]# mkdir -p /data/svnroot/myproject
[root@jin-120 ~]# svnadmin create /data/svnroot/myproject
[root@jin-120 ~]# cd !$
cd /data/svnroot/myproject
[root@jin-120 /data/svnroot/myproject]# ls
conf  db  format  hooks  locks  README.txt
[root@jin-120 /data/svnroot/myproject]# cd conf
[root@jin-120 /data/svnroot/myproject/conf]# ls
authz  passwd  svnserve.conf

其中,authz为权限配置文件,passwd为密码文件。

编辑配置文件authz,内容如下:

admins = zhangjin,user1
[/]
@admins = rw
*= r
[myproject:/]
user1 = rw

然后编辑密码文件passwd,内容如下:

[users]
aming = 123456
user1 = 123456

再编辑svnserve.conf文件,内容如下:

[general]
anon-access = none
auth-access = write
password-db = passwd
authz-db = authz
realm = /data/svnroot/myproject

保存配置文件后,启动svn服务

[root@jin-120 /data/svnroot/myproject/conf]# svnserve -d -r /data/svnroot 查看svn服务是否启动成功

如下图可见,svn服务监听的端口为3690

3、Linux客户端(192.168.6.123)下进行svn的同步操作

[root@jin-123 ~]#yum install -y subversion
[root@jin-123 ~]# mkdir svntest
[root@jin-123 ~]# cd !$
cd svntest
[root@jin-123 ~/svntest]# svn checkout svn://192.168.6.120/myproject --username=zhangjin
认证领域: <svn://192.168.6.120:3690> /data/svnroot/myproject
“zhangjin”的密码: 

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

   <svn://192.168.6.120:3690> /data/svnroot/myproject

只能明文保存在磁盘上!  如果可能的话,请考虑配置你的系统,让 Subversion
可以保存加密后的密码。请参阅文档以获得详细信息。

你可以通过在“/root/.subversion/servers”中设置选项“store-plaintext-passwords”为“yes”或“no”,
来避免再次出现此警告。
-----------------------------------------------------------------------
保存未加密的密码(yes/no)?yes
取出版本 0。
[root@jin-123 ~/svntest]# cd myproject/
[root@jin-123 ~/svntest/myproject]# ll -a
总用量 0
drwxr-xr-x. 3 root root 18 4月   4 19:43 .
drwxr-xr-x. 3 root root 23 4月   4 19:43 ..
drwxr-xr-x. 4 root root 75 4月   4 19:43 .svn


可以看到,在客户端上也同步了服务端上的myproject目录。

那么,如何在客户端和服务端上进行文件的同步呢?

我们首先在客户端上复制一份文件/etc/passwd:

[root@jin-123 ~/svntest/myproject]# cp /etc/passwd .
[root@jin-123 ~/svntest/myproject]# ls
passwd

然后使用命令svn add passwd把文件passwd添加到版本控制中心:

[root@jin-123 ~/svntest/myproject]# svn add passwd
A         passwd

再用命令svn commit -m "add passwd"把文件上传到服务器:

[root@jin-123 ~/svntest/myproject]# svn commit -m "add passwd"
正在增加       passwd
传输文件数据.
提交后的版本为 1。

在服务端上使用命令svn up把当前目录下的文件都更新到最新版:

[root@jin-120 /data/svnroot/myproject]# svn up
正在升级 '.':
已还原“passwd”
版本 1。
[root@jin-120 /data/svnroot/myproject]# ls
conf  db  format  hooks  locks  passwd  README.txt

可以看到,在当前目录下,也生成了passwd文件。

还可以在服务端上删除文件:

[root@jin-120 /data/svnroot/myproject]# svn delete passwd
D         passwd
[root@jin-120 /data/svnroot/myproject]# svn commit -m "del passwd"
正在删除       passwd

提交后的版本为 2。

然后在和客户端上执行svn up命令:

[root@jin-123 ~/svntest/myproject]# ls
passwd
[root@jin-123 ~/svntest/myproject]# svn up
正在升级 '.':
D    passwd
更新到版本 2。
[root@jin-123 ~/svntest/myproject]# ls

可以看到,客户端上的passwd文件也被同步删除了。

此外,还可以用命令svn log查看变更日志:

[root@jin-123 ~/svntest/myproject]# svn log
------------------------------------------------------------------------
r2 | zhangjin | 2019-04-04 20:17:38 +0800 (四, 2019-04-04) | 1 行

del passwd
------------------------------------------------------------------------
r1 | zhangjin | 2019-04-04 19:53:19 +0800 (四, 2019-04-04) | 1 行

add passwd
------------------------------------------------------------------------

4、windows下使用svn和服务端同步:

在官网下载安装包并安装: 然后在windows下新文件夹myproject,在此文件夹里用鼠标右键选择SVN Checkout,在弹出的对话框中输入服务端的仓库地址:

点“OK”,此时会弹出一个认证窗口,填写用户名和密码后再点击“OK”:

此时就可以进行同步了。

在windows此目录中,新建一个文件test_svn.txt 然后鼠标右键,选择“TortoiseSVN”-->"Add"-->SVN Commit,此时会弹出一个窗口:

然后在Linux服务端上执行命令svn up,即可查看到文件已经同步到服务端上了:

同样,在Linux服务端上新建文件demo.txt,然后执行以下命令:

[root@jin-120 /data/svnroot/myproject]# echo "hello world" >> demo.txt
[root@jin-120 /data/svnroot/myproject]# ls
conf  db  demo.txt  format  hooks  locks  README.txt  test_svn.txt
[root@jin-120 /data/svnroot/myproject]# svn add demo.txt
A         demo.txt
[root@jin-120 /data/svnroot/myproject]# svn commit -m "add demo.txt"
正在增加       demo.txt
传输文件数据.
提交后的版本为 4。

在windows下的myproject文件夹右键,选择Svn Update,此时会弹出一个窗口:

点“OK”按钮,并进入myproject文件夹下查看是否已同步成功:

转载于:https://my.oschina.net/u/3992198/blog/3032706

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值