快速学会SVN的搭建和使用
2023-03-14 10:22:42 时间
简介
Subversion(SVN) 是一个开源的版本控制系統, 也就是说 Subversion 管理着随时间改变的数据。这些数据放置在一个中央资料档案库(repository) 中。这个档案库很像一个普通的文件服务器, 不过它会记住每一次文件的变动。这样你就可以把档案恢复到旧的版本, 或是浏览文件的变动历史。
SVN 的一些概念
-
repository(源代码库):源代码统一存放的地方
-
Checkout(提取):当你手上没有源代码的时候,你需要从repository checkout一份
-
Commit(提交):当你已经修改了代码,你就需要Commit到repository
-
Update (更新):当你已经Checkout了一份源代码,Update一下你就可以和Repository 上的源代码同步,你手上的代码就会有最新的变更
日常开发过程其实就是这样的(假设你已经Checkout并且已经工作了几天):Update(获得最新的代码) —>作出自己的修改并调试成功 —> Commit(大家就可以看到你的修改了) 。
如果两个程序员同时修改了同一个文件呢, SVN可以合并这两个程序员的改动,实际上SVN管理源代码是以行为单位的,就是说两个程序员只要不是修改了同一行程序,SVN都会自动合并两种修改。
如果是同一行,SVN会提示文件Confict, 冲突,需要手动确认。
安装SVN
两种方法安装
-
第一种
点击免费下载阿里云SVN版本控制镜像。
SVN版本控制(Centos 64位 | SVN)
完成之后,登录”ECS 管理控制台”,在左边导航栏里,单击”实例”,进入 ECS 实例列表页,选择所购 ECS 实例所在的地域,并找到所购 ECS 实例,在”IP 地址”列获取该实例的公网 IP 地址。-
第二种
手动安装
1. 环境
centos7
2. 安装svn
yum install subversion
查看版本svnserve –version
![快速学会SVN的搭建和使用](http://docs-aliyun.cn-hangzhou.oss.aliyun-inc.com/assets/pic/52864/cn_zh/1492765796668/%E5%9B%BE%E7%89%8740.png)
3. 创建版本库
先建目录
mkdir /var/svn
创建版本库
cd /var/svn
svnadmin create /var/svn/svnrepos
cd svnrepos会看到自动生成的版本库文件:
conf db format hooks locks README.txt
![快速学会SVN的搭建和使用](http://docs-aliyun.cn-hangzhou.oss.aliyun-inc.com/assets/pic/52864/cn_zh/1492765884356/%E5%9B%BE%E7%89%8741.png)
subversion目录说明:
-
db目录:就是所有版本控制的数据存放文件。
-
hooks目录:放置hook脚本文件的目录。
-
locks目录:用来放置subversion见艰苦锁定数据的目录,用来追踪存取文件库的客户端。
-
format文件:是一个文本文件,里面只放了一个整数,表示当前文件库配置的版本号。
-
conf目录:是这个仓库的配置文件(仓库的用户访问账号、权限等)。
进入conf目录(该svn版本库配置文件)cd conf/
-
authz 文件是权限控制文件
-
passwd 是帐号密码文件
-
svnserve.conf SVN服务配置文件
设置帐号密码 vi passwd
在[users]块中添加用户和密码,格式:帐号=密码,如suzhan=redhat
![快速学会SVN的搭建和使用](http://docs-aliyun.cn-hangzhou.oss.aliyun-inc.com/assets/pic/52864/cn_zh/1492765968685/%E5%9B%BE%E7%89%8742.png)
设置权限 vi authz
在末尾添加如下代码:
[/]
suzhan=rw (r:读,w:写)
![快速学会SVN的搭建和使用](http://docs-aliyun.cn-hangzhou.oss.aliyun-inc.com/assets/pic/52864/cn_zh/1492766003755/%E5%9B%BE%E7%89%8743.png)
修改svnserve.conf文件 vi svnserve.conf
打开下面的几个注释:
-
anon-access = read #匿名用户可读
-
auth-access = write #授权用户可写
-
password-db = passwd #使用哪个文件作为账号文件
-
authz-db = authz #使用哪个文件作为权限文件
-
realm = /var/svn/svnrepos # 认证空间名,版本库所在目录
![快速学会SVN的搭建和使用](http://docs-aliyun.cn-hangzhou.oss.aliyun-inc.com/assets/pic/52864/cn_zh/1492766066126/%E5%9B%BE%E7%89%8744.png)
启动svn版本库
svnserve -d -r /var/svn/svnrepos
停止SVN命令
killall svnserve
用ps -ef |grep svn 查看服务是否开启。![快速学会SVN的搭建和使用](http://docs-aliyun.cn-hangzhou.oss.aliyun-inc.com/assets/pic/52864/cn_zh/1492766350459/%E5%9B%BE%E7%89%8745.png)
在windows上测试
如果没有TortoiseSVN客户端,可以去这里 下载:tortoisesvn.net/downloads.html, 根据从SVN服务器下载项目自己的实际情况下载对应版本。
在你的本地项目文件夹或随便一个地方,右键空白处弹出菜单,选择 SVN检出。然后,通过从SVN服务端获取的资源库URL+具体的项目文件夹名下载相应项目,并可以知道下载项目的保存位置。
![快速学会SVN的搭建和使用](http://docs-aliyun.cn-hangzhou.oss.aliyun-inc.com/assets/pic/52864/cn_zh/1493012358395/%E5%9B%BE%E7%89%875.png)
![快速学会SVN的搭建和使用](http://docs-aliyun.cn-hangzhou.oss.aliyun-inc.com/assets/pic/52864/cn_zh/1493012387481/%E5%9B%BE%E7%89%876.png)
第一次登陆需要输入密码,一切以passwd文件里面的账户密码为主!
![快速学会SVN的搭建和使用](http://docs-aliyun.cn-hangzhou.oss.aliyun-inc.com/assets/pic/52864/cn_zh/1493012453283/%E5%9B%BE%E7%89%877.png)
对项目的修改与提交
1. 把项目下载到本机后,其实就是一个普通的项目文件而已,你可以在里面添加文件、修改文件、删除文件等等。
2. 提交修改 在项目文件空白处右键,选择 SVN提交 。
![快速学会SVN的搭建和使用](http://docs-aliyun.cn-hangzhou.oss.aliyun-inc.com/assets/pic/52864/cn_zh/1493012527846/%E5%9B%BE%E7%89%878.png)
然后,输入 本次提交的版本更新信息(所作修改的注释)、勾选要提交的操作内容,点击 确定,即可把本机项目提交到SVN服务器资源库,覆盖掉资源库项目从而实现更新。
如果发生提交冲突,即两人都提交修改,后提交者由于版本落后会提交失败。这时可以先把自己的项目备份,然后从服务端下载最新的项目,再把自己的项目覆盖到本地项目文件夹,最后SVN提交即可成功提交。
我刚刚删掉了一个文件,这里就会显示:
![快速学会SVN的搭建和使用](http://docs-aliyun.cn-hangzhou.oss.aliyun-inc.com/assets/pic/52864/cn_zh/1493012629793/%E5%9B%BE%E7%89%879.png)
3. 获取更新
如果别人修改了SVN服务端资源库上的项目,你想下载最新的项目,则在 本机项目文件空白处单击鼠标右键,选择 SVN更新 ,即可自动完成下载,并会提示所作的更新有哪些。
注意:在原项目文件夹内选择SVN更新的话,会自动覆盖掉原有内容。建议:先备份,再更新,防止自己本来的项目内容丢失。
![快速学会SVN的搭建和使用](http://docs-aliyun.cn-hangzhou.oss.aliyun-inc.com/assets/pic/52864/cn_zh/1493012696911/%E5%9B%BE%E7%89%8710.png)
4. svn提供历史还原功能
首先打开一个文件夹,右键检出数据
![快速学会SVN的搭建和使用](http://docs-aliyun.cn-hangzhou.oss.aliyun-inc.com/assets/pic/52864/cn_zh/1493012769236/%E5%9B%BE%E7%89%8711.png)
然后删掉数据。这时如果不点提交的话,可以直接点鼠标右键还原即可。
![快速学会SVN的搭建和使用](http://docs-aliyun.cn-hangzhou.oss.aliyun-inc.com/assets/pic/52864/cn_zh/1493012840784/%E5%9B%BE%E7%89%8713.png)
如果点击提交了,那么系统库里的数据也会得到同步,系统也会把它存的数据删掉。
![快速学会SVN的搭建和使用](http://docs-aliyun.cn-hangzhou.oss.aliyun-inc.com/assets/pic/52864/cn_zh/1493012952972/%E5%9B%BE%E7%89%8716.png)
这时点击svn还原是没有用的,需要查看日志,看看是删掉了什么东西。
![快速学会SVN的搭建和使用](http://docs-aliyun.cn-hangzhou.oss.aliyun-inc.com/assets/pic/52864/cn_zh/1493013052617/%E5%9B%BE%E7%89%8718.png)
然后把删掉的文件保存版本到删掉的位置,
![快速学会SVN的搭建和使用](http://docs-aliyun.cn-hangzhou.oss.aliyun-inc.com/assets/pic/52864/cn_zh/1493013124814/%E5%9B%BE%E7%89%8719.png)
打开原文件夹,点击提交,系统库里的数据就和这个文件同步了。
相关文章
- 在 Go 里用 CGO?这 7 个问题你要关注!
- 9款优秀的去中心化通讯软件 Matrix 的客户端
- 求职数据分析,项目经验该怎么写
- 在OKR中,我看到了数据驱动业务的未来
- 火山引擎云原生大数据在金融行业的实践
- OpenHarmony富设备移植指南(二)—从postmarketOS获取移植资源
- 《数据成熟度指数》报告:64%的企业领袖认为大多数员工“不懂数据”
- OpenHarmony 小型系统兼容性测试指南
- 肯睿中国(Cloudera):2023年企业数字战略三大趋势预测
- 适用于 Linux 的十大命令行游戏
- GNOME 截图工具的新旧截图方式
- System76 即将推出的 COSMIC 桌面正在酝酿大变化
- 2GB 内存 8GB 存储即可流畅运行,Windows 11 极致精简版系统 Tiny11 发布
- 迎接 ecode:一个即将推出的具有全新图形用户界面框架的现代、轻量级代码编辑器
- loongarch架构介绍(三)—地址翻译
- Go 语言怎么解决编译器错误“err is shadowed during return”?
- 敏捷:可能被开发人员遗忘的部分
- Denodo预测2023年数据管理和分析的未来
- 利用数据推动可持续发展
- 在 Vue3 中实现 React 原生 Hooks(useState、useEffect),深入理解 React Hooks 的