SVN服务器搭建教程
常见的源代码管理工具
- CVS
- 历史悠久,现在几乎没人使用
- SVN
- 集中式版本控制的代表
- CVS的接班人,速度比CVS快,功能比CVS强大
- 在国内使用率非常高(70%~90%)
- GIT
- 分布式源代码管理工具
- 目前被大多数开源项目使用
- 不过在国内企业尚未大规模普及
源代码管理工具出现的意义
- 目的
- 为了解决在软件开发过程中,由源代码引发的各种繁琐的问题
- 常见问题
- 无法后悔:做错了一个操作后,没有后悔药可以吃
- 版本备份:费空间、费时间
- 版本混乱:因版本备份过多造成混乱,难于找回正确的想要的版本
- 代码冲突:多人操作同一个文件(团队开发中的常见问题)
- 权限控制:无法对源代码进行精确的权限控制
- 追究责任:出现了严重的BUG,无法得知是谁干的,容易耍赖
- 作用
- 能追踪一个项目从诞生一直到定案的过程
- 记录一个项目的所有内容变化
- 方便地查阅特定版本的修订情况
SVN
- 原理
- 使用环境
- 要想利用SVN管理源代码,必须得有2套环境
- 服务器
- 用于存储客户端上传的源代码
- 可以在Windows上安装Visual SVN Server
- 大部分情况下,公司的开发人员不必亲自搭建SVN服务器
- 客户端
- 上传本地的源代码到服务器,或者更新服务器的代码到本地,保持同步
- 可以在Mac上使用命令行、Versions、Cornerstone、Xcode
- 开发人员就属于客户端这个角色
- 服务器
- 要想利用SVN管理源代码,必须得有2套环境
- SVN下载地址
安装
- 第一步
- 双击打开VisualSVN-Server-2.7.7.msi
- 第二步
- 同意遵守协议
- 第三步
- 选择Visual VSN 服务器和管理控制台, 和添加SVN命令行工具到系统Path路径, 然后下一步
- 第四步
- 选择版本
- 第五步
- 由于SVN都是在公司内网里使用,不存在数据被截取的安全问题
- 所以为了速度更快,不要使用https
- 取消勾选 Use secure connection(https://)
- 第六步
- 开始安装
- 第七步
- 安装完成后会询问你是否需要运行
- 第八步
- 安装成功打开软件
创建代码仓库
- 第一步
- 第二步
- 填写代码仓库的名称
- 第三步
仓库目录说明
- db目录:就是所有版本控制的数据存放文件。
- hooks目录:脚本文件的目录。
- locks目录:用放置hook来放置Subversion文件库锁定数据的目录,用来追踪存取文件库的客户端。
- format文件是一个文本文件,里面只放了一个整数,表示当前文件库配置的版本号。
- conf目录:是这个仓库的配置文件(仓库的用户访问帐号、权限等)
第四步
添加用户
访问SVN服务器
- 本机直接访问
- 如果其他电脑想要访问仓库
- 要把仓库地址的前缀换成电脑的IP
对比Git
适用对象不同。 Git 适用于参与开源项目的开发者。 他们由于水平高,更在乎的是效率而不是易用性。Svn 则不同, 它适合普通的公司开发团队。使用起来更加容易。
使用的场合不同。 Git 适用于通过Internet,有多个开发角色的单个项目开发, Svn 适合企业内部由项目经理统一协调的多个并行项目的开发。
权限管理策略不同。 Git 没有严格的权限管理控制,只要有帐号,就可以导出、导入代码,甚至执行回退操作。 Svn 则有严格的权限管理, 可以按组、按个人进行针对某个子目录的权限控制。区分读、写权限。更严格的,不支持回退操作。保证代码永远可以追踪。
分支( branch )的使用范围不一样。 Git 中, 你只能针对整个仓库作 branch, 而且一旦删除,便无法恢复。而 svn 中, branch 可以针对任何子目录,它本质上是一个拷贝操作。 所以,可以建立非常多、层次性的 branch, 并且,在不需要时将其删除,而以后需要时只要 checkout 老的 svn 版本就可以了。
基于第三点, Git 适用于单纯的软件项目,典型的就是一些开源项目,比如 Linux 内核、 busybox 等。相反, Svn 擅长多项目管理。 比如,你可以在一个 svn 仓库中存放一个手机项目的 bsp/ 设计文档 / 文件系统/ 应用程序 / 自动化编译脚本, 或者在一个 svn 中存放 5 款手机项目的文件系统。 git 中必须建立 n ( 项目数 )* m (组件数) 个仓库。 Svn 中只需要最多 n 或者 m 个就可以了。
Git 使用 128 位 ID 作为版本号, 而且 checkout 时要注明是哪个 branch, 而 svn 使用一个递增的序列号作为全局唯一的版本号, 更加简明易懂。虽然可以使用 git tag 来建立一些文字化的别名,但是毕竟那只是针对特殊版本。
可跟踪性,git 的典型开发过程为: 建立分支,进行开发,提交到本地 master,删除分支。这样做的后果是以前 的修改 细节会丢失。 而在 svn 下做同样的事情,不会丢失任何细节。 这里是一个有趣的链接,表明了 git 下典型的工作方式:(以master为核心,不断创建新branch, 删除旧branch):
局部更新,局部还原。SVN由于是在每个文件夹建立一个.svn文件夹来实现管理,所以可以很简单实现局部更新或者还原。假如你只希望更新某些部分,则svn可以很好实现。同时代码写错了,同时可以很好实现局部还原,当然git也可以通过历史版本还原,但是无法简单地实现局部还原。
SVN服务器搭建教程的更多相关文章
- 搭建SVN服务器详细教程
搭建SVN服务器详细教程 本教程会从最基本的下载安装到上传代码,下载代码这条线来详细讲述如何完成SVN服务器的搭建 下载并安装VisualSVN server 下载并安装TortoiseSVN 导入项 ...
- Linux搭建SVN服务器详细教程
前言 本文讲解Linux系统下如何搭建SVN服务器,详细说明各配置项的功能,最终实现可管控多个项目的复杂配置. SVN是subversion的缩写,是一个开放源代码的版本控制系统,通过采用分支管理系统 ...
- Linux下的SVN服务器搭建
Linux下的SVN服务器搭建 鉴于在搭建时,参考网上很多资料,网上资料在有用的同时,也坑了很多人 本文的目的,也就是想让后继之人在搭建svn服务器时不再犯错,不再被网上漫天的坑爹作品所坑害,故此总 ...
- Linux下的SVN服务器搭建
鉴于在搭建时,参考网上很多资料,网上资料在有用的同时,也坑了很多人 本文的目的,也就是想让后继之人在搭建svn服务器时不再犯错,不再被网上漫天的坑爹作品所坑害,故此总结 /******开始****** ...
- SVN服务器搭建--Subversio与TortoiseSVN的配置安装
SVN服务器搭建和使用(一) Subversion是优秀的版本控制工具,其具体的的优点和详细介绍,这里就不再多说. 首先来下载和搭建SVN服务器. 现在Subversion已经迁移到apache网站上 ...
- linux 中 svn 服务器搭建 重启
鉴于在搭建时,参考网上很多资料,网上资料在有用的同时,也坑了很多人 本文的目的,也就是想让后继之人在搭建svn服务器时不再犯错,不再被网上漫天的坑爹作品所坑害,故此总结 /******开始****** ...
- Linux centos7 下 svn 服务器搭建
摘自:https://www.cnblogs.com/mymelon/p/5483215.html 鉴于在搭建时,参考网上很多资料,网上资料在有用的同时,也坑了很多人 本文的目的,也就是想让后继之人在 ...
- Linux下的SVN服务器搭建(转)
Linux下的SVN服务器搭建 鉴于在搭建时,参考网上很多资料,网上资料在有用的同时,也坑了很多人 本文的目的,也就是想让后继之人在搭建svn服务器时不再犯错,不再被网上漫天的坑爹作品所坑害,故此 ...
- linux svn 服务器搭建问题
我的svn版本 svn, version 1.7.14 (r1542130) compiled Nov 20 2015, 19:25:09 Copyright (C) 2013 The Apache ...
随机推荐
- VS中Component Class、User Control及Custom Control的区别 .
.NET Framework 为您提供了开发和实现新控件的能力.除了常见的用户控件外,现在您会发现,您可以编写能执行自身绘图的自定义控件,甚至还可以通过继承扩展现有控件的功能.确定创建何种类型的控件可 ...
- 设计TCP服务器的规则
设计TCP服务器,采用如下规则: 1.正等待连接请求的一端有一个固定长度的连接队列,该队列中的连接已被TCP接受(完成三次握手),但还没有被应用层接受.注意:TCP接受一个连接是将其放入这个队列,而应 ...
- Swift 学习笔记(面向协议编程)
在Swift中协议不仅可以定义方法和属性,而且协议是可以扩展的,最关键的是,在协议的扩展中可以添加一些方法的默认实现,就是在协议的方法中可以实现一些逻辑,由于这个特性,Swift是可以面向协议进行编程 ...
- web前端开发-Ajax(1)
1.简单简绍Ajax的功能 Ajax是处于前端和后端之间的这么一个东西,他可以拿到你前端form的内容,并且在你触发Ajax的时候,先将某些数据发送到服务器端,等接受到服务器 返回的数据时,执行某个函 ...
- oracle-jforum论坛链接Oracle
问题描述 jforum论坛链接Oracle jforum论坛链接Oracle数据库 论坛主题页面不显示 是权限引起的吗 解决方案 页面不显示,你需要看一下错误,估计是配置不对引起的 参考一下这个 jf ...
- Java图像处理最快技术:ImageJ 学习第一篇
ImageJ是世界上最快的纯Java的图像处理程序. 它能够过滤一个2048x2048的图像在0.1秒内(*). 这是每秒40万像素!ImageJ的扩展通过使用内置的文本编辑器和Java编译器的Ima ...
- MySQL——多版本并发控制
核心心知识点: (1)MVCC的优点和缺点 (2)MVCC的工作机制 之前在提及幻读的时候,提到过InnoDB的多版本并发控制可以解决幻读问题. 大多数MySQL的事务性存储引擎,例如InnoDB.F ...
- python 安装coreml
2.安装pip, 下载get-pip.py, https://bootstrap.pypa.io/get-pip.py,然后Python 这个文件,如果没有权限就加sudo 3.安装coreml:这 ...
- Linux2.4文件系统中vfsmount、安装点的dentry、设备的dentry之间的关系【转】
本文转载自:https://blog.csdn.net/mishifangxiangdefeng/article/details/7566575 1.vfsmount.安装点的dentry.设备的de ...
- 51Nod 1515 明辨是非 —— 并查集 + 启发式合并
题目链接:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1515 1515 明辨是非 题目来源: 原创 基准时间限制:1 ...