SVN教程 -- 基于自己学习记录
SVN教程 -- 基于自己学习记录
1. 概述
a. 什么是SVN?
Apache Subversion 通常被缩写成 SVN,是一个开放源代码的版本控制系统。相较于 git ,svn 是集中式版本控制系统。
SVN官网链接
b. 什么是集中式版本控制系统?
集中式版本控制系统可以这样理解:所有的源代码都放在统一的服务器上,开发者从服务器下载项目组的最新代码,进入自己的分支进行开发工作,提交代码,最后再把自己的分支合并到服务器主分支上,更新服务器源代码。由于源代码最后都是放在服务器上的,服务器统一集中管理,所以我们把这种操作模式叫做集中式管理。
2. 安装
这里以 Ubuntu 14.04.5 LTS 安装 SVN 为例,使用下列命令安装 SVN:
sudo apt-get install subversion
安装完成后输入:
svn –-version
出现下列信息即安装成功。
3. 配置 SVN 服务器
安装好 SVN 后,我们便可以进行相关操作了。
在
/home/ubuntu/test
下创建一个 svn 文件夹。cd /home/ubuntu/test mkdir svn
在 svn 文件夹下创建一个 myCode文件夹仓库。
svnadmin create /home/ubuntu/test/svn/myCode
创建完成后的目录结构如图所示:
创建完成后,我们需要配置一下 SVN。
在 conf 文件夹下有三个文件:
authz:用户权限配置文件
passwd:用户密码配置文件
svnserve.conf:对 svn 访问用户的配置文件。
a. 打开 svnserve.conf:
vim svnserve.conf
修改其中的内容如下(将注释 # 去掉):
anon-access = read auth-access = write password-db = passed authz-db = authz
b. 修改 authz ,在最末行加入:
[/] user = r user = rw
多用户时可以设置用户组:
在 [groups] 下面添加用户组名和用户名
[groups] mygroup = admin, user, xxx readGroup = xxx
设置用户组读写权限:
[/] @mygroup = rw @readGroup = r
设置用户组权限需要加@,单个用户的时候不用加。
c. 设置密码,打开 passwd 文件,在 [users] 下面添加账号和密码:
[user] admin = admin user = 123456 xxx = xxx
格式如下:
用户名 = 密码
启动 svn 服务器。
svnserve -d -r /home/ubuntu/test/svn/myCode
当回车后没有返回结果时便说明启动成功,如果显示错误则需重新配置 svn。
4. SVN 项目的导入导出及使用
导入本地代码到服务器。
svn import /home/ubuntu/test/love_source svn://localhost/mycode/love_source --username=admin --password=admin -m "初始化导入"
从服务器下载代码到本地,这里就又是我的 Ubuntu 环境,你可以根据项目需要下载到不同的客户端,只需将 localhost 改为 服务器的 ip 地址。
svn checkout svn://localhost/mycode --username=admin --password=admin /home/ubuntu/test/code
创建一个新文件夹并提交。
mkdir branches svn add branches svn commit -m "new folder"
创建新分支。
比如我们这里的 love 文件夹是我们的主线,我们创建一个 love 的新分支并提交:
svn copy love/ branches/my_branch svn commit -m "add my_branch"
接着就可以切换到 my_branch 分支进行开发,比如这里切换到新分支并创建 index.html 文件,将 index.html 加入版本控制并提交到版本库中:
cd branches/my_branch/ vim index.html svn add index.html svn commit -m "add index.html"
合并分支。
切回 love 主线,合并分支 my_branch:
cd /home/ubuntu/test/code/love_source/love svn update svn merge ../branches/my_branch/
svn update
:将当前目录及其子目录下的所有文件都更新到最新版本。这里可能会遇到
SVN MERGE: Unreadable path encountered; access denied
, 这是因为打开了匿名获取权限造成的,将anon-access = none
就可以了。最后再将合并好的 love主线提交到版本库中:
svn commit -m "add index.html"
至此,我们便完成了 SVN 的认识,安装配置,基本使用的操作步骤。
5. 参考链接:
- <http://www.runoob.com/svn/svn-branch.html>
- <https://baike.baidu.com/item/SVN>
6. 常用命令:
Linux公社有篇文章写的很好,这里给出链接,可以参考下:
<https://www.linuxidc.com/Linux/2011-09/42347.htm>
转载于:https://www.cnblogs.com/weixuqin/p/10647957.html
SVN教程 -- 基于自己学习记录相关推荐
- stm32f103c8t6c语言教程,STM32f103C8T6入门学习记录.doc
STM32f103C8T6入门学习记录 STM32 自 学 笔 记 作者:忙碌的小姚 新浪微博:@忙碌的小姚 新浪博客: /mlxiaoyao222 目录 STM32 自 学 笔 记1 第一章3 我与 ...
- Unity 3D官方教程——Adventure Game学习记录
1.Interactable System: 1.Picture Interactable:Player走到SecurityRoom墙前的那张画 2.Fish Interactable鱼档前的交互 3 ...
- 【MySQL】黑马教程MySQL数据库 | 学习记录笔记
MySQL概述 MySQL介绍 MySQL是一种关系型数据库(RDBMS),就是建立在关系模型基础上,由多张相互连接的二维表组成的数据库.像Excel表.特点:使用表存储数据,格式统一,便于维护:使用 ...
- Git学习记录 力做全网最强入门教程
目录 Git学习记录 力做全网最强入门教程 什么是GitHub? 什么是Git? Git的配置 Git的安装(只介绍windos操作系统下) Git的配置 至此我们的入门教程到此结束,更新中级教程要等 ...
- mysql实现知识图谱_基于电影知识图谱的智能问答系统学习记录
学习了"谓之小一"大佬的基于电影知识图谱的智能问答系统,做个记录.地址如下:https://github.com/weizhixiaoyi/DouBan-KGQA 一.知识图谱构建 ...
- 基于微信小程序的学习记录与提醒应用设计与实现-计算机毕业设计源码+LW文档
摘 要 网络的广泛应用给生活带来了十分的便利.所以把学习记录与提醒应用管理与现在网络相结合,利用java技术建设学习记录与提醒应用app,实现学习记录与提醒应用的信息化.则对于进一步提高学习记录与提 ...
- 系统架构设计师教程-学习-记录(1)系统架构师知识结构
系统架构设计师教程-学习-记录(1)系统架构师知识结构 初 记 系统架构师知识结构 系统架构师具备的能力 初 欢迎进qq群交流:546496965 学习<系统架构设计师教程>,初心是为了学 ...
- Windows网络编程案例教程-董相志 学习记录 第一个网络程序hostent
<Windows网络编程案例教程>-董相志 学习记录 第一个网络程序hostent 第一章 网络编程概述 1.3.5第一个网络程序--hostent 对主机的名称和地址解析 WinSock ...
- 《廖雪峰Git教程》学习记录
<廖雪峰Git教程>学习记录 作者:婷婷 摘要:这段时间学习了廖雪峰老师的Git教程,廖老师已经写得非常易懂了,本人在此处记录了学习到的在windows环境下Git的基本用法,写此博客,便 ...
- 基于全志A33开发板linux系统移植学习记录(Boot0)
基于全志A33开发板linux系统移植学习记录 第一章 Boot0基于ARMGCC的编译与修改 文章目录 基于全志A33开发板linux系统移植学习记录 前言 一.全志A33简介以及上电引导流程 二. ...
最新文章
- 给表增加字段 本地测试正常 上传到服务器不正常
- android 多个url请求,[Android]Retrofit多base_url请求解决方案
- C语言学习之购房从银行贷了一笔款d,准备每月还款额为p,月利率为r,计算多少月能还清。
- 观物外篇-唐-邵雍:(一)
- Mysql 数据插入 修改删除
- 软件工程实践2017第一次作业
- DAS 2020 Keynote Speech | 深度学习时代的 OCR
- export和import 输出/接收模块变量的接口
- 2022年的PMP考试大纲是什么?
- 悦box(mt7620a)刷padavan固件
- 固态硬盘安装Win7双系统
- ORB-SLAM2代码阅读笔记(一):从mono_kitti单目运行开始
- PHP前一页 后一页 切换
- 【持股】k线图基础知识k线基本形态分析
- 【互联网及其应用】第3章网络技术基础
- 习题 4.6 有一个函数:。。。 写程序,输入x的值,输出y相应的值。
- 维基百科创建和百度百科建立有何不同?
- 我们该如何运营Facebook账号呢?
- 【我的OpenGL学习进阶之旅】解决着色器语法错误:The shader uses varying u_Color, but previous shader does not write to it
- formdata格式的数据如何处理?
热门文章
- cron一点半到两点半之间每分钟_分辨率,定位精度,重复定位精度三者之间有什么关系?...
- Win10下VB6.0开发之串口通信基础(二)代码功能篇
- php封装函数输出,php函数封装
- 拆分是解决大规模应用问题的本质
- Cannot find class ‘org.apache.hudi.hadoop.HoodieParquetInputFormat‘
- wrong ELF class: ELFCLASS64
- 最大流学习笔记(4)-推送重贴标签算法二
- 专家:苹果有能力打造Mac芯片但不会去做
- vue弹出框消息重置问题---一个投机取巧的方法
- java实现倒计时源码分享