svn的基本配置及使用

模拟一下实际的情况来使用svn(Linux为服务器,Mac为客户端)

这里我利用虚拟机的ubuntu16.04来充当svn服务器,统一管理代码。

查看ubuntu的ip为10.211.55.6

查看unbuntu是否安装了svn:svn --version

如果没有安装,使用 命令安装即可

sudo apt install subversion

至此,我们两台计算机都有svn了(mac默认就有svn)

1. 创建仓库

在找一个你喜欢的位置,创建一个文件夹(以后我们所有的代码仓库都往这边保存),我这里是在桌面创建了code文件夹

然后进入文件夹,使用命令创建代码仓库

svnadmin create <仓库名>

我这里仓库名取名为learnsvn, 可以使用同样命令创建出不同的仓库,

2.  配置启动服务

进入仓库里的conf文件夹cd learnsvn/conf

1步:vi svnserve.onf 将以下四行注释打开, 注意:他们不在一起,我们要找一找逐个打开

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

注解:anon-access = read代表匿名访问的时候是只读的,若改为anon-access = none代表禁止匿名访问,需要帐号密码才能访问

2步:vi password 打开password进行用户及密码的配置

3步: vi authz 配置用户组和权限

4步: 启动服务端

使用命令

svnserve -d -r <仓库路径>

我的是创建在桌面上,所以进入code使用命令svnserve -d -r learnsvn

使用ps aux | grep svn查看当前运行的进程,以我这个为例如果想关闭服务,可以直接杀死进程 sudo kill -9 21353

至此,我们的服务器搭建完成!!

3. 用mac连接ubuntu svn代码仓库

情况一:从本地导入代码到服务器(第一次初始化导入),这里,为模拟情况,我现在桌面创建了mycode文件夹当做项目, 在里面创建了readme.txt文件,并写上‘learn svn is easy...’

使用命令将本地代码导入远程svn仓库

svn import <本地项目代码路径> svn://<远程ip>/<远程仓库路径> --username=<用户名> --password=<密码> -m "<说明>"

我现在mac在桌面的mycode文件夹里面,所以使用本地文件路径使用了相对路径,也可以使用绝对路径,远程路径就是前面我们创建的并配置的代码仓库。

svn import ../mycode svn://'10.211.55.6'/home/zizle/Desktop/code/learnsvn --username=zizle --password=123456 -m "初始化导入"

情况二:从远程拉取代码到本地

使用命令

svn checkout svn://<ip>/<仓库路径> --username=<用户名> --password=<密码> <本地路径>

这里,我首先在桌面创建了hahaha文件夹,然后将代码从ubuntu拉到hahaha里面

查看内容

至此,我们已经可以创建拉取服务器上的仓库了。。

情况三:修改代码后,提交上服务器

我们进入刚刚拉取下来的hahaha文件夹内,修改readme.txt文件,增加“yes, i think so..”

推送上服务器,进入代码所在文件夹,使用命令

svn commit -m '<本次提交说明>‘

可以看到如下结果

情况四:更新服务器端的代码到客户端

假设你休息了两天,周一来上班,而你的小伙伴已经加班加点在readme.txt添加了一句话’now let's to go learning......‘,并且提交了代码,你周一上班了就需要同步本地的代码

在代码所在文件夹使用命令就可以更新本地代码了

svn update

我在桌面新建一个文件夹'heihei'来模拟这个小伙伴,进入拉取代码到文件夹,进入修改readme.txt

然后重新进入我们自己的代码文件夹'haha',查看,还是上周休假前的状态,于是你开始更新,使用命令

svn update

说明:提交和更新都可以指定文件的,只要在命令后添加文件名即可。但我觉得没用。你觉得呢?

最后我们查看更新后的readme.txt,就发现跟服务器同步了。

结果如下:

注意点:记得到所对应的项目文件夹内操作。

说明:其中,我进行了2次提交,所在所有过程中版本号多了1,图片做了小修改。

重点:SVN在服务器端的存储方式和客户端是不一样的,所以在服务器端是看不到源文件的。服务器端有两种存储方式FSFS和BDB,目前默认都是FSFS,将每次commit的内容增量方式存放的,每个增量包存成1个文件,这个增量包中包括了这次commit的全部数据。所以,别像我一样去服务端查找文件在哪,根本看不见!哈哈。。

 

现在,我们已经初步掌握了svn代码管理工具了!!!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值