SVN 快速入门
一、SVN 简介
(1) SVN 是 Subversion 的缩写,是一个开源的版本控制系统
(2) SVN 基于 C/S 架构,有一台中央服务器,多台客户端通过网络从中央服务器拉取或提交代码,以此达到多人协作开发
(3) SVN 是集中式的开源版本控制系统,集中式核心在于中央服务器,开发者需要先从服务器上拉取/提交代码,一旦离开了服务器,基本无法工作,这是缺点之一
(4) SVN 客户端需要通过网络从中央服务器拉取或提交代码,特别依赖网络,因此一旦网络出现问题,也就无法拉取或提交代码,这也是缺点之一
二、SVN 服务端安装
[root@localhost ~]$ yum install -y subversion # 安装SVN
[root@localhost ~]$ mkdir -p /data/svn # 我们使用/data/svn目录作为版本库,先创建该目录
[root@localhost ~]$ svnadmin create /data/svn # 创建版本库,使得客户端能够从这里拉取/提交代码
[root@localhost ~]$ ll /data/svn
total 24
drwxr-xr-x 2 root root 4096 Jan 18 22:53 conf # SVN服务端配置文件目录
drwxr-sr-x 6 root root 4096 Jan 18 22:53 db # SVN版本数据存储目录
-r--r--r-- 1 root root 2 Jan 18 22:53 format # 存储一个整数的文件,此整数代表库层次结构版本
drwxr-xr-x 2 root root 4096 Jan 18 22:53 hooks # 存放版本库钩子的目录
drwxr-xr-x 2 root root 4096 Jan 18 22:53 locks # 存储库锁目录,用来跟踪库的访问者
-rw-r--r-- 1 root root 229 Jan 18 22:53 README.txt # 说明文件
[root@localhost ~]$ ll /data/svn/conf
total 12
-rw-r--r-- 1 root root 1080 Jan 18 22:53 authz # SVN用户权限配置文件
-rw-r--r-- 1 root root 309 Jan 18 22:53 passwd # 密码文件,用于客户端登录服务端时的用户名密码验证
-rw-r--r-- 1 root root 3090 Jan 18 22:53 svnserve.conf # SVN版本库的配置文件
[root@localhost ~]$ vim /data/svn/conf/authz # 用户权限配置文件
[groups]
db = user1, user2 # groups 用于定义用户组,把功能相同的用户分成一个组,以便管理
web = user3, user4 [/] # 定义为哪个目录进行权限分配,/表示当前版本库目录,这里我刚开始写成/data/svn ,后面实验的时候报错了svn: E170001: Authorization failed
user1 = rw # 可以对单个用户进行权限分配,rw表示可读可写
@web = rw # 可以对某个组的用户进行权限分配,写法是:@组名
* = r # 表示对剩下的所有用户进行权限分配
[root@localhost ~]$ cat /data/svn/conf/passwd # 配置用户密码
[users]
user1 = jiDTUlneBGSQEad5
user2 = tz0ETMlNjPEILhqK
user3 = vsXJ6pn0FxWRqZg6
user4 = rz7Hq7ZuAb5LvfVS
[root@localhost ~]$ cat /data/svn/conf/svnserve.conf # 配置版本库
[general] # 通用配置
anon-access = none # 表示匿名用户没有任何权限
auth-access = write # 表示通过认证的用户拥有写的权限
password-db = passwd # 指定用户密码文件的路径,这里是相对路径
authz-db = authz # 指定用户权限配置文件的路径,这里是相对路径
realm = /data/svn # 表示上面的配置对哪个svn目录生效
[root@localhost ~]$ svnserve -d -r /data/svn # 启动SVN服务端,-d 表示以daemon形式运行,-r 用于指定svn版本库目录的路径
三、Linux 客户端使用 SVN
[root@localhost ~]$ yum install -y subversion # 安装SVN,以便使用svn这个命令
[root@localhost ~]$ svn checkout svn://139.199.177.89 --username=user1 # 第一次使用要检出代码,并指定使用哪个认证用户
[root@localhost ~]$ touch 1.txt # 创建一个文件做实验
[root@localhost ~]$ svn add 1.txt # 添加到版本控制中心
[root@localhost ~]$ svn commit -m 'add file' 1.txt # 提交到版本库
[root@localhost ~]$ svn delete 1.txt # 如果想要删除版本库中的文件,需要先通过delete删除本地文件
[root@localhost ~]$ svn commit -m 'delete file' # 再提交到版本库
[root@localhost ~]$ svn update # 从版本库更新文件到本地
[root@localhost ~]$ svn log # 查看变更日志
四、Windows 客户端使用 SVN
(1) Windows 上的操作基本与 Linux 上的操作一致
(2) 先去官网 https://tortoisesvn.net/index.zh.html 下载 TortoiseSVN ( 一个客户端软件 ) 并安装
(3) 如何检出文件:创建一个目录,右键点击 SVN Checkout 检出服务端代码到这个目录
(4) 如何上传文件:创建一个文件 ---> SVN Add ---> SVN Commit
(4) 如何删除文件:选中这个文件,右键点击 SVN Delete ---> SVN Commit
SVN 快速入门的更多相关文章
- SVN快速入门(TSVN)
作者: 北京群英汇信息技术有限公司 网址: http://www.ossxp.com/ 版本: 0.1-35 日期: 2011-07-05 10:51:59 版权信息: 目录 1 安装Tortoi ...
- SVN快速入门笔记【转】
1. SVN版本控制软件目的 协作开发 远程开发 版本回退 2. 什么是SVN subVersion 支持平台操作 支持版本回退 3. 获取SVN软件 属于C/S结构软件(客户端与服务端) serve ...
- SVN 快速入门!
输入账户密码即可!
- GitHub新手快速入门日常操作流程
GitHub新手快速入门日常操作流程 1. 注册帐号 打开https://github.com/,填写注册信息并提交. 2. 登录帐号 打开https://github.com/login,输入注册的 ...
- 快速入门系列--MVC--07与HTML5移动开发的结合
现在移动互联网的盛行,跨平台并兼容不同设备的HTML5越来越盛行,很多公司都在将自己过去的非HTML5网站应用渐进式的转化为HTML5应用,使得一套代码可以兼容不同的物理终端设备和浏览器,极大的提高了 ...
- Github快速入门手册
最近在试用Github,开源的思想也让人觉得把一些经验分享出来是非常好的事情.附件是doc文件,如有需要请注意查收.希望能对你有帮助. GITHUB基于互联网的版本控制快速入门手册 如有不妥,欢迎指正 ...
- 【云计算】Dockerfile、镜像、容器快速入门
Dockerfile.镜像.容器快速入门 1.1.Dockerfile书写示例 Dockerfile可以用来生成Docker镜像,它明确的定义了Image的生成过程.虽然直接修改容器也可以提交生成镜像 ...
- Git快速入门和常用命令
一.快速入门 本地初始化一个项目 首先,你需要执行下面两条命令,作为 git 的基础配置,作用是告诉 git 你是谁,你输入的信息将出现在你创建的提交中. git config --global us ...
- .NET Core实战项目之CMS 第四章 入门篇-Git的快速入门及实战演练
写在前面 上篇文章我带着大家通过分析了一遍ASP.NET Core的源码了解了它的启动过程,然后又带着大家熟悉了一遍配置文件的加载方式,最后引出了依赖注入以及控制反转的概念!如果大家把前面几张都理解了 ...
随机推荐
- jquery跨域访问解决方案
客户端“跨域访问”一直是一个头疼的问题,好在有jQuery帮忙,从jQuery-1.2以后跨域问题便迎刃而解.由于自己在项目中遇到跨域问题,借此机会对跨域问题来刨根问底,查阅了相关资料和自己的实践,算 ...
- http://www.gasi.ch/blog/inside-deep-zoom-1/
In March 2007 Blaise Aguera y Arcas presented Seadragon & Photosynth at TED that created quite s ...
- arduino入门套件学习过程-安装配置
arduino作为非常火的开源软硬件,有其巨大的优势和前景. 我呢,近期正好需要用arduino做一些小东西,借此机会,分享我的arduino学习历程,欢迎各位朋友一起讨论,指点! 现在进入正题: 这 ...
- IntelliJ IDEA 13.1.3 SVN无法正常使用问题
http://my.oschina.net/luckyi/blog/291007 最新升级IDEA12到13版本,升级后发现IDEA中SVN无法正常使用,但文件夹下能够正常使用. 并且报错:svn: ...
- 实验二 C#程序设计 总结
通过本次实验,我按照书上的例子,一个例子一个例子地写下来,前七点感觉和C语言差不多,除了语法稍稍不同外,大体上是一样的.到了第八点,对异常的处理,另我十分印象深刻.因为我做例3.21的时候,按照例子要 ...
- Axiom3D:资源引用与加载基本流程.
Archive:对应文件夹位置,包含文件夹,压缩文件,网络位置,包含Load,Unload,Open,Create,Remove,FineFile等主要虚方法,用于对应各具体Archive来实现. R ...
- vs 无法启动iis
visual studio 2013/2015/2017 有时会碰到iis无法启动, 查看系统事件日志发现,缺少 aspnetcore.dll 文件 . 下载此文件,并复制到缺少的目录中,重启visu ...
- [原创] Keil uVision5 下载程序 add flash programming algorithm选项缺少需要的算法解决办法
MDK开发环境从V4升级到V5后,支持包不再是集成到开发环境当中,而是封装在PACK中,需要自行安装,比较麻烦. 搭建MDK开发环境以及破解的方法,在前面的文章中有详细说明,这里不再赘述,有兴趣的可以 ...
- Linux语言设置修改乱码
1.system-config-language 命令语言改成英文.(安装yum install system-config-language) 如何系统安装后,使用的语言不是自己想要的.但是在图形 ...
- Easyradius 1.699更新,增加用户设备绑定、桥接用户管理功能
最近几天,由于IDC机房设备的问题,导致OA连接3天一天挂2次,真是把我抑闷着,最事一个烦事特别多 好不容易等了一个五一假期,也不得空,把最近一些网友反馈的OA的一些功能及BUG进行修复,主要是以下几 ...