svn使用小结

一、为什么需要SVN

在做中级项目中,都是采用小组合作开发的,在后期整合中常常遇到问题。这个时候就需要用到版本控制工具了。

版本控制工具主要应用于:

1、协作开发

2、远程协作

3、版本回退

二、什么是SVN

l  svn全称SubVersion

l  svn是近年来崛起的版本管理工具,是cvs的接班人。目前,绝大多数开源软件都使用svn作为代码版本管理软件。(oschina、Github)

l  支持Windows、Linux、MacOS

l  前身是CVS

l  时间机器

解决第一个问题中的解决方案

SCM (软件配置管理)

对软件源代码的管理

CVS:主要工作是对C语言或C++进行代码管理,但是由于编码问题,一直没有得到广泛的推广。

VSS:Viusal Source Safe:Visual Studio产品中的一员,主要是对.NET版本控制

ClearCase:类似于VSS,功能强于CVS,但是由于其价格昂贵,一直没有得到广泛的推广。

SVN:版本控制软件(主流)

Git:Linux下面的版本控制软件

面试题:什么是版本控制软件,有哪些功能,你知道的有哪些,你最擅长的是什么?

SVN:采用的是C/S结构

三、SVN中三大指令

1、Checkout   检出

2、Update   更新

3、Commit    提交

1、做为项目经理或技术总监,在项目开始时,首先在服务器上部署我们的SVN项目

2、上传我们的源代码(主要是一个公用文件或规则等)分为两步:

第一步:首先建立与服务器的链接(Checkout)

第二步:我们提交代码这个过程称之为(Commit)

四、SVN的安装与配置

1、SVN分为服务器端与客户端

l  服务器端:VisualSVN   SubVersion

l  客户端:TortoiseSVN

server

http://www.visualsvn.com/

client

http://tortoisesvn.net/downloads

2、软件安装顺序

先安装服务器端,服务器没有版本位数区分

VisualSVN:随时安装随时使用,方便卸载,无残留

3、服务器端软件的安装注意事项

软件必须安装在除C盘以外的任意盘符下,文件夹命名不能出现空格或特殊字符,也不能出现中文。

安装完成,打开dos窗口输出svn,如果提示不是系统命令,那么轻重启电脑或强制结束explorer.exe,重新建立一下

4、客户端软件安装(TortoiseSVN)

出现如下界面代表安装成功

五、数据仓库

在svn中我们的项目,不能称之为项目或文件夹,而是称之为“仓库”

仓库的建立步骤:

1、创建代码仓库

l  在任意盘符下建立文件夹(d:\svn\myApp)做为我们的版本库根目录,如我们需要建立一个shop的项目,当前shop也只能算一个文件夹,而不是“仓库”

l  svnadmin create D:\svn\myApp\shop

2、启用代码仓库

svnserve –d(代表后台运行)-r(监管目录) d:\svn\myApp\shop

Apache àlocalhost Apache/htdocs

SVNà D:/svn/myApp/shop  svn://localhost(主机名或ip地址)

3、如果建立客户的与服务器端的联系

单击版本库浏览器,输入如下网址:

鼠标右键,检出,出现如下界面,代表以建立连接

最后会在目录中出现隐藏的文件夹(.svn),代表成功

4、上传代码注意事项

提示无权限:那么请打开仓库中的conf文件夹里面找到svnserve.conf文件

更改代码,如下:

六、图标解析

1、代表服务器端与客户端文件相同,没有任何更改

2、当前文件如果有修改,那么将显示如下图标

3、当前要提交的文件,与服务器上其他人提交的文件有冲突,那么将显示如下图标

4、当前文件,在服务器上已被删除,那么将显示如下图标

5、当我们的文件,在服务器中,无法找到,那么将显示如下图标

6、当我们的文件出现5的提示,那么你可以通过添加实现,下次commit过程中,自动提交的效果,图标如下:

7、当我们的文件中,存在一些与系统无关的文件,如测试文件、项目需求分析文档等一系列文件,我们可以采用忽略的方式,图标如下:

忽略方式有两种:

一种:只忽略某一个文件

二中:忽略某一类型文件

七、SVN中的数据备份

差异存储法:

八、版本回退

九、版本冲突

原理图:

解决办法:

三种方案:

1)合理分配项目开发模块

wangcai:文章,邮件,会员

xiaoqiang:静态化,缓存,前台

2)合理分配项目开发时间

wangcai:上午开发

xiaoqiang:下午开发

3)多者同时开发某一文件,产生了问题,那么可以采用如下方式解决:

步骤:

1、首先更新文档,下载最新文件

注意:

.r9:是系统最初的一个状态文件

.r10:是系统最新的也就是旺财上传的那个文件

.mine:我们现在要上传的文件

index.php文件是把两者的代码,进行了统一与合并

2、删除index.php以外的文件

3、合并与调整冲突代码

4、重新提交

成功

十、多仓库配置

如果单独监管某一项目文件,无法同时进行开发工作。

所有项目都是放在myApp这个目录下面

我可以不可以直接监管myApp

问题1:如果我们监管myApp目录,那么myApp目录需要svnadmin create么?

问题2:它属于仓库么?

答:该文件本身不需要存储任何代码,其功能就是包含项目文件夹,所以从本质上来说,其还是一个文件夹。

功能:让svn://localhost(域名),定位到此文件夹。

那么:

比如shop项目访问的路径为:svn://localhost/shop

cms:项目访问的路径为:svn://localhost/cms

wechat:项目访问的路径为:svn://localhost/wechat

十一、权限控制

问题:当前采用单仓库或多仓库配置中,所有的文件权限都是可读写的,这样就会存在一个问题,只要任何知道了我们的访问地址,那么都可以对文件进行读写操作。

1、为什么需要权限控制

打开服务器端的项目文件夹:

svnserve.conf:项目的主配置文件,功能的开启和关闭

passwd:主要定义系统中拥有哪些用户以及用户密码

authz:该文件功能主要是进行文件授权,告诉svn哪些人拥有哪些权限。

默认情况下,系统主配置文件中,是没有开启passwd以及authz授权功能的,权限控制步骤:

1、在主文件配置开启passwd以及authz验证

2、定义系统中有哪些用户与密码

3、给用户授权

4、重新开启监听

结束方法:Ctrl+C结束监听

当我们进行提交的时候,需要

十二、配置自动启动服务

1、添加到系统服务

sc create SVNService binpath=  “D:\subversion\bin\svnserve.exe --service -rD:/svnroot” start=  auto

特别注意:

在binpath=后面有一个空格

在start=后面也有一个空格

必填,谨记!!!

在系统服务中,将出现如下命令

2、启动、停止与删除命令

l  net start SVNService 启动

l  net stop SVNService 停止

l  sc delete SVNService删除

启动与停止命令,采用net start|stop 服务名称

删除操作

时间: 2024-10-17 03:58:58

svn使用小结的相关文章

SVN学习小结

SVN是Subversion的简称,是一个开放源代码的版本控制系统,在它的管理下,文件和目录可以超越时空的限制,权且当作一种神奇的"时间机器"吧. 基本功能 版本控制 作为一个版本控制系统,SVN能够及时的更新版本,将文件存放在中心版本库里.这个版本库很像一个普通的文件服务器,不同的是,它可以记录每一次文件和目录的修改情况.这样就可以籍此将数据恢复到以前的版本,并可以查看数据的更改细节. 备份 SVN会对你的每一次操作和更改进行备份(为了节省占用空间,多采用增量备份).更改错误.误删.

eclipse svn合并小结

合并时候,当前在哪个分支上,哪个分支即为"主干" 弱化主干 分支的概念.svn原则上并没有主干 分子 主 从的概念.从一个项目衍生(分支)出来的版本,都可以是主,也可以是从. 版本之间互相合并原理 文件覆盖过来,有冲突的标明. 下图:合并的时候选1:合并一个 分支/或者主 到当前所在的节点. 3:合并两个 到当前节点 有  A,B,C三个版本(可能从其中一个主干,两个个分)  可以 互相合并

sae的svn使用小结

之前使用eclipse中的插件以及windows下的界面客户端来做svn,对svn的命令一知半解,现在使用Django进行开发,同样需要svn,弄了好久都会报错. 经历了这么多,会发现命令行才是最有效最容易理解的方案,可以发现svn和git的命令行相当的像. ------ 1. 首先在sae的服务器上建立好版本之后(版本都是以数字开头的,比如1/2/3/...等),就可以从服务器上克隆代码了: svn checkout https://svn.sinaapp.com/108lab/ 如下图所示:

Linux下的SVN指令小结

svn checkout path(path为服务器上的目录):将文件checkout到本地目录,简写为:svnco: svn add file:往版本中添加新的文件 svn commit –m "Logmessage" [-N][--no-unlock] PATH(如果选择了保持锁,就使用-no-unlock开关),eg: svn commit –m "add test title for mytest" test.php 简写:svn ci 4.svn lock

SVN提交小结(转)

在我们用VS进行项目合作开发的过程中,SVN的提交控制是至关重要的,由于版本冲突造成的各种麻烦咱们已经遇到的够多了.所以,总结他们的经验教训,给我们也给其他人做个提醒.下面的第一部分是需要在正式开发之前需要做的,第二部分是开发的过程中需要注意的. 一.排除不必要的提交 1.将编译性的文件排除在提交之外 由于编译性的文件(包括obj文件夹和bin文件夹)并不是源文件,它完全可以通过存储的源文件生成,一次提交的话会造成两方面的影响:1. 浪费服务器存储空间 2. 由于每个团队成员编译的结果可能并不一

SVN文件排除

背景:原来SVN库人事2.0在24.42服务器上,后来服务器改革,把库迁移到了24.248服务器上.原来24.42上的库,在update或commit后文件总是绿色的,看着心里特别的敞亮,可库迁移后,不管我怎么update或是commit,文件就没再绿过,提交文件时总是小心翼翼,生怕出错. 今天在阅读昌哥博客时,发现是bin文件和obj文件没有排除,bin目录用来保存项目生成后程序集,obj目录是用来保存每个模块的编译结果,如果你还想知道的更多,可以阅读昌哥的博客:SVN提交小结,写的真是太棒了

git与svn的区别-小结一下

1)Git是分布式的,SVN不是: 这 是GIT和其它非分布式的版本控制系 统,例如SVN,CVS等,最核心的区别.好处是跟其他同事不会有太多的冲突,自己写的代码放在自己电脑上,一段时间后再提交.合并,也可以不用联网在本地提交:GIT并不是目前第一个或唯一的分布式版本控制系统.还有一些系统,例如Bitkeeper, Mercurial等,也是运行在分布式模式上的.但GIT在这方面做的更好,而且有更多强大的功能特征. GIT跟SVN一样有自己的 集中式版本库或服务器.但,GIT更倾向于被使用于分布

windows下SVN版本库迁移小结

SVN需求:搬迁至异地上云环境,迁移过程将影响用户的时间减少至最小. SVN常见的几种迁移方案: 第一种:整个SVN库目录打包迁移,原库大小17G,打包加迁移时间预估时间约5小时以上,中断不符合要求. 第二种:svnadmin 自带的dump导出load导入方式迁移 :所有版本导出大小超过了磁盘剩余空间(不小于40G),中断不符合要求. 第三种:通过svnsync钩子脚本同步方式进行第一次全量同步,迁移时增量同步(预计最快时间十分钟左右). 利用svnsync同步过程: 1. 原SVN服务器与目

SVN安装使用小结

SVN在实际的项目开发中有很广泛的用途.一开始接触SVN(Subversion),思路并不清楚,现在总算理清了. 声明:本文并不是系统地对SVN做介绍,而是笔者的使用总结,个人认为的一些要点,可能对初学者更加有用. 1.SVN结构 SVN其实也是一种C/S结构,我们的电脑一般是客户端,当然也可以作为服务端. 这里需要声明,B/S结构本质上也是一种特殊的C/S结构,所以如果你知道你的SVN服务器地址,用浏览器也可以访问. 我们为什么要用SVN呢?我认为有两方面的作用: 版本控制. 文档共享,不需要