svn版本控制_svn版本控制工具 - CSDN
精华内容
参与话题
  • 一、SVN简介: 为什么要使用SVN? 程序员在编写程序的过程中,每个程序员都会... SVN的全称,它是一个自由/开源的版本控制系统,一组文件存放在中心版本库,记录每一次文件和目录的修改,Subversion允许把数据恢...
    一、SVN简介:
     为什么要使用SVN?

          程序员在编写程序的过程中,每个程序员都会生成很多不同的版本,这就需要程序员有效的管理代码,在需要的时候可以迅速,准确取出相应的版本,适合团队开发中使用,提高代码的整合效率和开发效率。

    Subversion是什么?

       SVN的全称,它是一个自由/开源的版本控制系统,一组文件存放在中心版本库,记录每一次文件和目录的修改,Subversion允许把数据恢复到早期版本,或是检查数据修改的历史,Subversion可以通过网络访问它的版本库,从而使用户在不同的电脑上进行操作。

    二、SVN服务器搭建和客户端的安装
      个人推荐使用VisualSVN server 服务端和 TortoiseSVN客户端配合使用

      安装过程自行学习脑补......

    三、基本操作

    1.svn服务器与客户端工作流程:


    2.TortoiseSVN常见的图标

    : 一个新检出的工作副本使用绿色的对勾做重载。表示Subversion状态正常。

     :  在你开始编辑一个文件后,状态就变成了已修改,而图标重载变成了红色感叹号。通过这种方式,你可以很容易地看出哪些文件从你上次更新工作副本后被修改过,需要被提交。

    : 如果在更新的过程中出现了冲突,图标会变成黄色感叹号。

     : 如果你拥有了一个文件的锁,并且Subversion状态是正常,这个重载图标就提醒你如果不使用该文件的话应该释放锁,允许别人提交对该文件的修改。

    : 加号告诉你有一个文件或目录将被调度加入版本控制库中。

    3.TortoiseSVN客户端基础操作

    ① SVN检出(SVN Checkout): 在文件夹或者目录下单击右键 –> 选择SVN检出,如下图所示

      

    点击SVN Checkout后,在弹开窗口的版本库url框中输入版本库的目录地址,然后点击确定,如下图:


    再点击ok按钮后,如下图:

    在弹出的对话框中输入用户名和密码,验证成功后,项目文件开始从远程服务器下载到本地工作目录中。


    点击ok按钮后,即可获取完成项目检出到本地。

    ② SVN还原(SVN Revert):右击想要回退的文件或者文件夹,在TortoiseSVN弹出菜单中选择”Update to reversion…” 然后会弹出一个窗口,如下:


    比如说我们要回退到第10个版本只需要在Revision中填写相应的版本号,然后点击ok即可。

    ③SVN更新(SVN Update):更新本地代码与SVN服务器上最新的版本一致,只要在需要更新的文件夹上点击右键或者在文件下空白处点击右键,选择”SVN Update”。

    ④SVN提交(SVN Commit):Svn的提交是将在工作空间做的修改进行提交,包括文件内容的修改,文件或目录的添加,删除,命名,移动等操作。如下图所示:


     ⑤ 显示日志(Show log):通过此功能可以查到谁,什么时候,对那个目录下的那些文件进行了那些操作,如下图:


    四、SVN冲突解决方案

    为什么会产生冲突代码呢?原因很简单就是因为不同的人,同时修改了同一个文件的同一个地方,这时候,他提交了,我没有提交,我就提交不了,这个时候我们要进行先更新,然后在进行提交即可,那如果产生冲突,会生成如上3个文件。 

    对于每个冲突的文件Subversion在你的目录下放置了三个文件:如下:


    1.txt.mine 是冲突前自己的修改后的文件。
    2.1.txt.r4   是冲突前本地的版本文件

    3.1.txt.r5  是别人赶在你之前提交的最新版本

    方案一:提交代码前,将代码备份在本地,出现冲突后,将冲突文件删除,在更新最新版本,将备份文件代码合并到最新版本。

    方案二:出现冲突,使用编辑冲突,将自己的修改的文件与最新版本的文件代码对比,手动合并后,标记为解决冲突,再提交。

    注意事项:

    1、eclipse 集成SVN 操作与客户端基本一致。

    2、.svn这个隐藏目录记录着两项关键信息:工作文件的基准版本和一个本地副本最后更新的时间戳,千万不要手动修改或者删除这个.svn隐藏目录和里面的文件!!,否则将会导致你本地的工作拷贝(静态试图)被破坏,无法再进行操作。


    展开全文
  • SVN版本控制

    2019-09-29 20:33:33
    1.1.1项目管理中版本控制的问题 通常软件开发由多人协作开发,如果对代码文件、配置文件、文档等没有进行版本控制,将会出现很多问题: 代码管理混乱 备份多个版本,占用磁盘空间大 解决代码冲突困难 容易引发...
    1.1SVN的概述
    	1.1.1项目管理中版本控制的问题
    	通常软件开发由多人协作开发,如果对代码文件、配置文件、文档等没有进行版本控制,将会出现很多问题:
    	代码管理混乱
    	备份多个版本,占用磁盘空间大
    	解决代码冲突困难
    	容易引发BUG
    	难于追溯问题代码的修改人和修改时间
    	难于恢复至以前正确版本
    	无法进行权限控制
    	项目版本发布困难
    
    	1.1.2什么是版本控制
    	版本控制(Revision control)是维护工程蓝图的标准做法,能追踪工程蓝图从诞生到定案的过程。是一种记录多个文件内容变化,以便将来查阅特定版本修订情况的系统。
    	1.1.3主流的版本控制
    	VSS:Visual Source Safe(Microsoft Visual Studio成员)主要任务是负责项目文件的管理
    	CVS:march-hare出品的一套用于进行文件版本控制软件
    	SVN:Apache软件基金会名下的一套用于进行文件版本控制软件
    	在2000年初,开发人员要写一个CVS的自由软件代替品,它保留CVS的基本思想,但没有它的错误和局限,保留CVS的基本特性但去除CVS的bug和不好的特性。
    	在2000年2月,他们联系《使用CVS开发开源项目》(Open Source Development with CVS)(Coriolis, 1999)的作者Karl Fogel,并征求了他是否愿意在这个新的项目中担任一个角色。巧合的是,当时Karl已经和他的朋友Jim Blandy讨论了一个关于新的版本控制系统的设计。在1995年,这两人就成立了Cyclic Software,一个提供CVS的商业支持的软件公司。虽然他们经营商业服务,但是仍然在每天都在工作中使用CVS。使用CVS的挫折感使得Jim认真思考更好的方法来管理数据,不但确定名字为“Subversion”,而且完成了Subversion档案库的基础设计。
    	当CollabNet的电话到来时,Karl立即答应了加入项目中,而且Jim让他的雇主RedHat Software同意让他在这个项目中不定期工作。CollabNet雇用了Karl和Ben Collins-Sussman,并在5月开始了详细设计工作。在得到了来自CollabNet的Brian Behlendorf、Jason Robbins和Greg Stein(当时是一名活跃在WebDAV/DeltaV规范过程的自由程序员)很多创意的帮助下,Subversion很快地引起了一个活跃开发者社区的注意。它找出并欢迎很多同样在CVS上受到挫折的社员能来为这个项目做点什么。
    	Subversion 最初的设计Team定下了几个简单的目标。 它必须在功能上可取代 CVS,也就是说, 所有 CVS 可做到的事, 它都要能够作到。 在修正最明显的瑕疵的同时, 还要保留相同的开发模式。 还有, Subversion 应该要和 CVS 很相像, 任何 CVS 使用者只要花费少许的力气, 就可以很快地上手。
    	经过十四个月的编码后, Subversion 于2001年8月31日开始实现 “自行管理”。 也就是说, 开发人员不再使用 CVS 来管理 Subversion 的代码, 而以 Subversion 自己来管理。
    	2009年11月,Subversion被Apache Incubator专案所接收。
    	2010年1月,正式成为Apache软件基金会的一个顶级专案,所以为Apache Subversion.
    	目前Apache Subversion的主席为Greg Stein, 项目领导者Release manager为Wandisco公司。
    	1.1.4什么是SVN
    	SVN(Subversion)是近年来崛起的版本管理工具,在当前的开源项目里(J2EE),几乎95%以上的项目都用到了 SVN。Subversion 项目的初衷是为了替换当年开源社区最为流行的版本控制软件 CVS,在 CVS的功能的基础上有很多的提升同时也能较好的解决 CVS 系统的一些不足。
    	1.1.5SVN的作用
    	针对软件研发企业的软件生产过程而言,SVN用于管理整个开发过程中的源码,进行版本控制。
    	1.2SVN的使用
    	1.2.1SVN的使用方法
    	svn是基于客户/服务器模式:
    	复制-修改-合并方案(Subversion默认的模式)
    	在这种模型里,每一个客户读取项目配置库建立一个私有工作副本——版本库中文件和目录的本地映射。用户并行工作,修改各自的工作副本,最终,各个私有的复制合并在一起,成为最终的版本,这种系统通常可以辅助合并操作,但是最终要靠人工去确定正误。
    	锁定-修改-解锁方案
    	在这样的模型里,在一个时间段里配置库的一个文件只允许被一个人修改。 此模式不适合软件开发这种工作。
    	1.2.2SVN的工作方式
    	1.3SVN服务的安装
    	1.3.1官方安装包(不用看)
    	官方网站:http://subversion.apache.org/
    	下载:http://subversion.apache.org/download.cgi
    
    	官方提供的服务端安装包,安装后需要通过命令行操作,适用于专业配置管理员使用。
    
    	1.3.2图形化服务端
    	志愿者开发的图形化操作界面的svn服务端,它适用于普通软件开发人员使用。
    
    	下载地址:https://www.visualsvn.com/downloads/
    	1.3.3安装图形化服务端
    	查看程序菜单:
    	查看服务,VisualSVN成功启动:
    	1.3.4创建仓库
    	svn服务端创建完成需要创建仓库,仓库中存放要版本控制的文件。
    	通过开始菜单进入VisualSVN server manager:
    	选择文件存储方式:
    	创建一个空的仓库:
    	设置用户访问仓库权限:
    	仓库创建成功:
    	仓库地址为https://ip地址或计算机名/svn/仓库名称
    	1.3.5创建工程目录
    	仓库中存放开发项目代码、文档等,需要创建一个工程目录。
    	创建成功:
    	1.4TortoiseSVN客户端(安装成功后需要重新启动电脑)
    	1.4.1svn客户端类型
    	svn客户端需要通过网络访问svn服务端提交文件、查询文件等,可通过以下客户端类型访问svn服务端:
    	1、使用Subversion提供的客户端命令
    	使用方式:在命令行下输入命令操作。
    	2、使用Torotise图形化界面操作(推荐)
    	3、使用Eclipse等开发工具插件操作(推荐)
    	1.4.2下载安装
    		TortoiseSVN是Subversion版本控制系统的一个免费开源客户端,不需要为使用它而付费。
    		TortoiseSVN是 Subversion 的 Windows 扩展。它使你避免接触 Subversion 枯燥而且不方便的 Command Line。它完全嵌入 Windows Explorer,使用时只需在正常的窗口里右键操作就可以了
    	下载:http://tortoisesvn.net/downloads.html	提供 32位和64位不同版本,安装tortoiseSVN 需要修改客户端电脑右键菜单,安装后需要重启电脑。
    	1.4.3浏览仓库
    	使用Tortoise浏览svn服务端的仓库的内容:
    	1.5权限管理(了解)
    	1.5.1认证授权机制
    		在企业开发中会为每位程序员、测试人员等相关人员分配一个账号,用户通过使用svn客户端连接svn服务时需要输入账号和密码,svn服务对账号和密码进行校验,输入正确可以继续访问,当用户访问仓库下某个目录时,svn服务对用户进行授权,如果用户拥有该目录的访问权限方可访问。
    		判断账号和密码输入是否正确的过程即认证过程。
    		判断用户是否拥有目录的读/写权限时即授权过程。
    	1.5.2创建用户
    	查看已创建的用户:
    	修改用户:
    	1.5.3创建组
    	查看创建的组:
    	修改组:
    	1.6分配权限
    	给仓库下的每个目录分配权限对访问进行控制。
    	1.6.1删除默认权限
    	删除系统安装后默认权限:
    	1.6.2示例一:开发人员拥有读写权限
    	进入权限分配界面:
    	添加组或用户:
    	分配权限:
    	继承父目录权限、不可访问、读权限、读/写权限
    	访问时输入账号:
    	登陆测试是否有读/写权限:
    	1.6.3示例二:测试人员拥有读权限
    	登陆测试是否有读/写权限:
    	1.6.4清除认证缓存
    	有几种情况需要清除认证缓存:
    	1、本地使用多个账号登陆,每次输入的账号和密码都不一样
    	2、当账号密码修改后(建议清理)
    	1.7TortoiseSVN日常使用
    	1.7.1浏览仓库
    	Repo-browser : 浏览仓库中资源信息 
    	1.7.2导入导出
    	Export :导出项目 ,和checkout区别 (checkout检出后文件,含有.svn隐藏文件夹, 会和SVN仓库交互, export导出,没有.svn隐藏文件夹)
    	import 将本地资源导入到svn 服务器	
    	1.8修改提交
    	1.8.1Checkout 
    	检出项目,复制项目的副本到本地。
    	在要检出的目录中右键:
    	1.8.2add
    	在检出的目录中添加文件:
    	图标: 这是一个新文件 
    	Add to ignore list :添加到忽略列表 (标记该文件不需要版本控制 )
    	Add : 标记这个文件添加到服务器 
    	已经标记要添加到版本库 
    	1.8.3Commit
    	当检出目录或子目录中内容有修改,目录图标变为:
    	提交Commit 提交本地修改至svn服务器:
    	在检出目录或要提交修改的目录右键:
    	提交后目录中的内容与svn服务同步,目录图标变为:
    	1.8.4update
    	更新仓库的文件到本地
    	在检出目录或子目标或文件上右键:
    	1.8.5更新到最新版本
    	1.8.6更新到指定版本
    	1.8.7Delete
    	Delete :删除版本库文件
    	 标记删除后,本地文件删除,标记删除后需要提交。	 
    	1.8.8恢复
    	在检出目录或子目录操作会记录操作日志,提交前可以回滚操作。
    	在要回滚的检出目录或子目录中右键:
    	1.9冲突处理
    	两个客户端同时修改同一个文件, 改动同一个位置,发生冲突情况 
    		如果当commit 遇到文件已经过时,说明另一个人可能改动过 ----- update 
    		db.properties 将本地和服务器合并到一起的文件 (不要直接看)
    		db.properties.mine 我本地自己修改后的文件 
    		db.properties.r16 我修改之前的文件 
    		db.properties.r17 别人修改后的文件
    	手动Merge 后,需要将编辑后冲突文件,标记为已经解决 , 再进行commit 
    	1.10eclipse的SVN插件使用
    	1.10.1svn插件安装
    	下载Subversion的eclipse插件 
    	http://subclipse.tigris.org/servlets/ProjectProcess?pageID=p4wYuA 
    	下载 site-1.10.11.zip,本教程将此zip放在D盘。
    	下边是在STS上安装svn插件步骤:
    	1、进入STS软件安装界面
    	2、安装svn插件
    	上边命令行输入:SVN - jar:file:/d:/site-1.10.11.zip!/
    	点击下一步。
    	接受协议,完成:
    	出现提示,选择继续安装:
    	安装完成,查看STS视图有SVN选项说明安装成功:
    	1.在eclipse中安装svn的插件
    	解压site-1.10.11.zip,创建svn的文件夹,把features和plugins拷贝到svn文件夹中。再把svn文件夹拷贝到eclipse安装目录下。Eclipse下的dropins目录下。重启eclipse。
    	1.10.2将项目共享到SVN 
    		新建SVN仓库连接 , 切换“SVN资源库” 视图
    		共享项目到SVN 
    		注意: 共享后,SVN服务器上只有项目文件夹, 此时需要选择哪些资源不被管理!
    	1.10.3从svn检出 
    	 将svn管理项目检出到工作区 
    	1.10.4解决冲突 
    	手动merge后,标记为解决 
    	trunk:项目开发代码的主体,是从项目开始直到当前都处于活动的状态,从这里可以获得项目最新的源代码以及几乎所有的变更历史信息。
    	branch:从trunk的某个点分离出来的代码拷贝,通常可以在不影响主干的前提下在这里进行重大bug的修改,或者做实验性的开发,以及定制功能开发等。如果分支达到了预期的目的,通常可以被合并(Mgerge)到主干中。
    	tag:用来表示trunk和branch的某个点的状态,以代表项目的某个稳定状态,通常为最终发布状态。
    工程目录创建完成,查看它的svn地址:
    拷贝svn地址:
    
    展开全文
  • 将已有项目代码加入svn版本控制

    千次阅读 2018-01-16 14:08:42
    将已有项目代码加入svn版本控制 - TortoiseSVN入门篇 Windows下SVN实用教程(以TortoiseSVN作为客户端(client)) 翻译: Bravo Yeung Next: 版本库的备份与存储 目录 导引安装...

    将已有项目代码加入svn版本控制 - TortoiseSVN入门篇
    Windows下SVN实用教程(以TortoiseSVN作为客户端(client))

    翻译: Bravo Yeung




    Next: 版本库的备份与存储

    目录

    • 导引
    • 安装Subversion
    • 安装TortoiseSVN
    • 一步步地操作
      • 步骤0. 设置全局忽略文件类型(此步骤为可选)
      • 步骤1. 创建版本库Repository数据库
      • 步骤2. 导入初始化 - 将你的项目导入(import)到数据库
      • 步骤3. 创建工作目录 -  将你的项目与数据库连接起来
    • 注意事项
    • 参考资料

    导引

    到目前有很多关于Subversion (SVN) 和 TortoiseSVN的优秀书籍和教程。其中有部分在本文的参考资料区有列出。这篇教程无疑是站在巨人的肩膀上。它只覆盖了subversion (SVN)有限的一部分功能。 然而我希望此文能简化你对SVN的认识。

    Subversion 是一种跨平台的开源版本控制系统 (http://subversion.tigris.org/).  它由版本数据库 (FSFS 或 BDB) 和一些命令行工具组成。目前有各种各样的SVN前端工具。

    Subversion是为多人参与的项目专门设计的。 但它也可用于管理个人项目。

    此文仅限于基于Windows的本地SVN环境(未单独配置远程的服务器)。

     

    安装Subversion

    打开Tigris.org网站的下载区,选择 源代码软件工程工具Subversion (http://subversion.tigris.org/)。 Windows下最新的命令行版Subversion的安装文件和库都能在http://www.open.collab.net/downloads/subversion/下载到。下载安装包。SVN的默认安装目录为C:\Program Files\Subversion,当然你也可以修改磁盘路径。

    现在你就可以开始使用SVN了。 如果你不习惯使用命令行工具,那你有必要安装一个你觉得合适的GUI前端。

    安装TortoiseSVN

    TortoiseSVN是一种Subversion客户端, Windows下它是一个命令行扩展, Windows资源管理器的一个插件(http://tortoisesvn.tigris.org/)。

    最新版本可以在这下载到 http://tortoisesvn.sourceforge.net/downloads截止到2015.12.18的最新版本为:TortoiseSVN-1.9.2.26806-x64-svn-1.9.2.msi,如果需要切换语言,还可以在官网上下载相应语言包。

    如果你电脑安装的Windows是32位的请选择32位的TortoiseSVN安装包,如果你电脑安装的Windows是x64的请选择x64的TortoiseSVN安装包。 下载区域的另一个文件TortoiseSVN-xxx-xxx.md5, 是安装时不需要的。它包含安装包的验证编号checksum,该验证编号能有效验证你是否下载到了合适的安装包 (且它没有损坏)。

    你可以下载程序HashFile (http://www.shokhirev.com/nikolai/programs/progmisc.html) 来验证下载到的安装包的 MD5 哈希值 (checksum). 该验证编号必须和TortoiseSVN-xxx-xxx.md5文件上的信息完全一致。

    这个安装也是直接的,同意默认设置即可。 唯一有趣的是ASP.Net hack. 默认情况下, SVN 使用 .svn 工作目录 (正如Linux下隐藏文件的命名风格)。

    默认的, 不含有 ASP.Net hack

     含有给VS.Net web项目用的ASP.Net hack

    这使得 微软 ASP.Net 和 the hack 强制 SVN 去使用  _svn 作为工作目录。 如果你要使用Subversion对ASP.Net项目进行版本控制,请不要安装ASP.Net hack这一项。

    注: 安装完TortoiseSVN后,你的Windows 资源管理器的主目录上会出现下图所示的新的按钮: 


    同时这些新增按钮也会添加到 (通过鼠标右键单击激活) 的上下文菜单中。

     

    一步步地操作

    目前有很多Subversion管理方式(参看手册). 现在我们主要考虑如下主要的情形: 

    • 你有一个现有的项目,你想将它加入版本控制。
    • 这是你本地电脑上的个人项目。

    在这种情形下你不应该会担心安全性和开启一个subversion服务器。

    假设你的项目驻放在 C:\Projects\MyProject 路径下,它包含如下文件,或许还有些子文件夹:  


    步骤0 (可选). 设置全局忽略文件类型。 你可能不想跟踪临时文件 或  某些其他格式的文件。鼠标右击任意一个文件夹,然后打开TortoiseSVN的Settings:

     

    当然你也可以鼠标右击文件, 打开Windows资源管理器主目录中的TortoiseSVN/Settings。


    "General" -> "Subversion"处,你可以列出各种各样的文件类型,并使用空格隔开 (比如上图中示例的 *.bak *.~*). 注意到这个设置会对所有的工作目录有效。参看手册的5.25可了解更多的设置。

    步骤1.创建版本库Repository。 在你的硬盘上为你的项目创建版本库的目录, 比如 C:\SVN. 在它里面创建一个空的子目录 \MyProject. 鼠标右键点击MyProject,并选择TortoiseSVN -> 在此创建版本库:


     选择默认"原生文件系统"(FSFS)选项,并单击OK按钮:


    这一步将 C:\SVN\MyProject 转化为含有如下内容的版本库:


    到目前为止,它还是一个空的版本库,虽然Subversion已经创建了几个目录和文件 ! 我们需要将我们的项目文件中需要进行版本控制的文件填充进去并将它链接到我们的工作项目的目录。这些操作中可能会有几个和大家的习惯操作不一样、新的操作。


    步骤2. 导入初始化。 在你的磁盘的某处 (比如 在 C:\tmp) 创建一个目录 (比如 \new) ,含有如下3个子目录:

         C:\tmp\new\branches
         C:\tmp\new\tags
         C:\tmp\new\trunk

    相应的文件结构为:


    为了能用更多高级的项目管理功能,这个结构是必须的, 如果事先创建它也不会带来什么损害。 有些手册首推先导入此结构到版本库,然后向里面添加项目。我推荐使用如下的快捷方式:

    • 备份你的项目文件 (比如 C:\Projects\MyProject), 以防万一. 
    • 删除所有不在全局忽略文件列表中的不需要进行版本控制的文件。
    • 将 文件夹 \MyProject 中需要进行版本控制的内容 移动 进 trunk 子目录 (C:\tmp\new\trunk). 我们之后无论如何都将会需要一个空的文件夹。
    • 将目录"new"导入Import到版本库 (选择"new",右键依次单击TortoiseSVN->Import):


    URL 选择 file:///C:/SVN/Myproject (左斜杠"/" !):


    "Import finished" 消息出现时,表明 C:\tmp\new\下的所有文件及子文件夹都已成功导入版本库 :


    不需要担心"tmp\new" 消息, 只要验证哪些文件真正地导入到了版本库中即可。 书表右键单击 C:\SVN\MyProject ,然后打开 TortoiseSVN -> Repo-browser(版本库浏览器):


    导航 至 file///C:/SVN/MyProject/trunk:


    注意到全局忽略列表的文件都没被导入。 并且也没有 'C:\tmp\new' 目录的痕迹了, 'C:\tmp\new' 目录再没有什么用处了,可以删掉。


    步骤3. 创建工作目录 -  将你的项目与数据库连接起来. 现在你已经成功增加了你对所有需要进行版本控制的文件添加了版本控制,并且当前的空目录 C:\Projects\MyProject (回忆一下, 我们之前已将改目录中的所有文件 移动 到了 目录 C:\tmp\new\trunk 中,对么?). "为了让你的双手移动文件的这个行为获得"赞美", 完全得到批准, 并且完全导入Subversion目录, 你需要从版本库中对它进行检出Checkout" . 书表右击 C:\Projects\MyProject 文件夹,并选择 "SVN Checkout"(SVN 检出):


    设置 URL 为 file:///C:/SVN/MyProject/trunk ,并设置检出目录为: C:\Projects\MyProject


    点击OK. 会提示"Checkout (检出) has finished":


    "赞美" 以"对勾Check"小图标的形式反映在你的项目目录和里面所有的文件(和所有的子目录)上。


    这样的含有"对勾Check"的目录被称为工作目录。现在你可以开始使用SVN管理你的项目版本了,也可以学到更多关于Subversion的知识。

     

    几点注意事项

    • 提交 (checking in) 你对版本库的变更: 右击鼠标,然后选择 "SVN Commit"(SVN提交)
    • 添加文件到版本库。 这是一个两步的过程: 
      1. 先右击选中的文件,然后右键依次选择 "TortoiseSVN"->"Add"
      2. 先右击选中的文件,然后右键依次选择 "TortoiseSVN"->"SVN Commit"
    • 除了参考书籍 [4] 和 [5], 我也推荐 Charlie Calvert 的文章 [6].
    • 如果你使用 Lavasoft Ad-Aware, 不要删除可以忽略的对象: 这一步会删除注册表中的图标设置 !
    • 祝开开心心 使用Subversion版本控制 !

     

    参考资料

    1. Subversion 主页: http://subversion.tigris.org/ 
    2. By Hans Dietrich, Version Control for the Standalone Programmer - Part 1. - Code Project中的优秀文章.
    3. SVN 1-Click setup.- Windows下用单个安装包搭建SVN环境:http://svn1clicksetup.tigris.org/
    4. Adam Pash, How to set up a personal home Subversion server (Windows下需另外配置Apache).
    5. RapidSVN, 一种用于SVN版本控制系统的跨平台GUI前端: http://rapidsvn.tigris.org/ 
    6. TortoiseSVN, 一种 Subversion 客户端, 作为windows的命令行扩展: http://tortoisesvn.tigris.org/ 
    7. Ben Collins-Sussman, Brian W. Fitzpatrick, C. Michael Pilato. Subversion手册: http://svnbook.red-bean.com/ 
    8. TortoiseSVN 用户手册, 来自 TortoiseSVN官方网站 https://tortoisesvn.net/docs/nightly/TortoiseSVN_en/.
    9. Charlie Calvert. 在Subversion Trunk, Tags, Branches中创建版本库、和项目。 Codefez: (http://www.codefez.com/Home/tabid/36/ctl/ArticleView/mid/364/articleId/144/Default.aspx)
    10. Sebastian Rahtz.Subversion简介, 牛津大学: http://www.oucs.ox.ac.uk/oucsweb/svn.xml
    11. OUCS提供的一份Windows下TortoiseSVN的使用手册.http://www.oucs.ox.ac.uk/oucsweb/tortoisesvn.xml
    12. TortoiseSVN 教程. http://www.mind.ilstu.edu/research/complete_inactive/iris4/iris40/developers/svntutorial/   
    13. SVN vs CVS. http://www.pushok.com/soft_svn_vscvs.php 
    14. 更多 SVN 链接
    展开全文
  • SVN版本控制服务

    2020-06-11 14:21:26
    1、SVN介绍SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS迁移到...

    1、SVN介绍

    SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS迁移到Subversion。也是就是CVS的接班人!

    CVS是一个C/S系统,是一个常用的代码版本控制软件。主要在开源软件管理中使用。与它相类似的代码版本控制软件有subversion。多个开发人员通过一个中心版本控制系统来记录文件版本,从而达到保证文件同步的目的。CVS版本控制系统是一种GNU软件包,主要用于在多人开发环境下的源码的维护。但是由于之前CVS编码的问题,现在大多数软件开发公司都使用SVN替代了CVS。

    官方网站:Windows客户端 TortoiseSVN

    2、常见的版本控制软件

    CVS,逐渐被SVN取代,是CVX重写版和改写版

    SVN,Subversion

    Git,Git是一个开源的分布式版本控制系统,用以有效、高速的处理从很小到非常大的项目版本管理。Git 是 Linus Torvalds (林纳斯·托瓦兹)为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件是利用 Ruby on Rails 一个开源的版本管理系统,实现一个自托管的Git项目仓库,可通过Web界面进行访问公开的或者私人项目。它拥有与Github类似的功能,能够浏览源代码,管理缺陷和注释。可以管理团队对仓库的访问,它非常易于浏览提交过的版本并提供一个文件历史库。团队成员可以利用内置的简单聊天程序(Wall)进行交流。它还提供一个代码片段收集功能可以轻松实现代码复用,便于日后有需要的时候进行查找。

    3、SVN存储数据的方式

    BDB,Berkeley DB,一种事务安全型表类型

    FSFS,"FSFS" 采用文件系统的方式, 替代原来的基于Berkeley DB的实现

    注:因为BDB方式在服务器中断时,有可能锁住数据,所以还是FSFS方式更安全一点

    4、SVN的运行方式及端口

    独立服务器         3690端口           访问方式SVN://    C/S模式

    借助apache运行             80端口        访问方式 http://

    5、工作流程

    集中式代码管理的核心是服务器,所有开发者在开始新一天的工作之前必须从服务器获取代码,然后开发,最后解决冲突,提交。所有的版本信息都放在服务器上。如果脱离了服务器,开发者基本上可以说是无法工作的。下面举例说明:开始新一天的工作:

    1、从服务器下载项目组最新代码。

    2、进入自己的分支,进行工作,每隔一个小时向服务器自己的分支提交一次代码。

    (很多人都有这个习惯。因为有时候自己对代码改来改去,最后又想还原到前一个小时的版本,或者看看前一个小时自己修改了哪些代码,就需要这样做了)。

    3、下班时间快到了,把自己的分支合并到服务器主分支上,一天的工作完成,并反映给服务器。

    6、搭建svn服务

    6.1软件安装

     [root@localhost ~]# yum install subversion

    6.2创建版本库目录

     [root@localhost ~]# mkdir /svn ##存放版本库的主目录
     [root@localhost ~]# svnadmin create /svn/yunweimao ##创建一个版本库

    svnadmin命令是由subversion这个软件包提供的

     [root@localhost ~]# ls /svn/yunweimao/
     conf db format hooks locks README.txt
     dav目录:是提供apache与mod_dav_svn使用的目录,让他们存储内部数据,刚开始新建时此目录没有
     db目录:就是所有版本控制的数据存放文件
     hooks目录:放置hook脚本文件的目录
     locks目录:用来放置subversion监控锁定数据的目录,用来追踪存取文件库的客户端
     format文件:是一个文本文件,里面只放了一个整数。表示当前文件库配置的版本号
     conf目录:是这个仓库的配置文件(仓库的用户访问账号、权限等),也是我们要关注的配置文件
     [root@localhost ~]# ls /svn/yunweimao/conf/
     authz passwd svnserve.conf  
     authz  #认证权限相关
     passwd  ##用户名和密码
     svnserve.conf  ##服务器配置文件

    6.3修改配置文件

     [root@localhost ~]# vim /svn/yunweimao/conf/svnserve.conf
     [general]
     12anon-access =read            #原先注释掉了,匿名用户可以读,使用none的话就是匿名用户不可以访问
     13auth-access =write            #这几行都要取消注释,认证用户可以写,可以是read,write,none
     20password-db =passwd        #密码库文件,默认使用的是同一目录下的passwd文件作为用户密码库
     27authz-db =authz               #认证权限文件
     32realm =My First Repository      #登陆提示信息
     ##注意:此配置文件的所有内容必须顶格,否则会报错
     [root@localhost ~]# vim /svn/yunweimao/conf/passwd 
     [users]
      7Make =123456
      8MAN =123456
      9top=123456
     ##注意:对于部分版本,前面的[users]是有#号的,如果有#号,一定要取消,否则只能使用匿名用户登录,客户端登录不会出现登录窗口或密码提示,除非在配置文件将anon设置为none,否则将返回一个错误
     ##这里的密码都是明文,没有加密
     [root@localhost ~]# vim /svn/yunweimao/conf/authz
     21[groups]
     22# harry_and_sally = harry,sally
     23# harry_sally_and_joe = harry,sally,&joe
     24Check = Make,MAN
     25[/]
     26top = rw
     27@Check = r
     28*=
     ##SVN目录格式:
      ##                       [/目录名]
      ##                       @用户组名 =权限
      ##                       用户名 =权限
      ##                       *=

    6.4服务SVN启动及创建测试代码

     [root@localhost ~]# svnserve -d -r /svn/ ##启动了所有版本库, 再 –r。如果只需要某一个版本库,后面添加/webdept/www.xuegod.cn/的版本库即可   -d=daemon -r=root of directory of save指定根目录
     [root@localhost ~]# ps -aux | grep svn ##查询到下面这行内容就可以了
     Warning: bad syntax, perhaps a bogus '-'? See /usr/share/doc/procps-3.2.8/FAQ
     root      3768 0.0  0.0 152412  732?       Ss   13:35   0:00 svnserve -d-r/svn/
     root      3770 0.0  0.0 103336  868pts/0   D+  13:37   0:00 grepsvn
     [root@localhost ~]# netstat -antup | grep svn ##查看端口正常
     tcp        0     00.0.0.0:3690                0.0.0.0:*                   LISTEN      3768/svnserve  

    7、使用svn导入测试代码

    导入测试代码格式:  svn [选项] 源码  svn://server ip/项目名

     [root@localhost ~]# mkdir localsvn
     [root@localhost ~]# cd localsvn/
     [root@localhost localsvn]# touch 1.html 2.html 4.php
     [root@localhost localsvn]# cd 
     [root@localhost ~]# svn import /root/localsvn/ file:///svn/yunweimao/ -m "first edit"
     增加           /root/localsvn/1.html
     增加           /root/localsvn/2.html
     增加           /root/localsvn/4.php
     
     提交后的版本为 1。

    8、代码取出

     [root@localhost ~]# svn checkout svn://localhost/yunweimao/ downsource ###代码取出到downsource,会在当前目录新建这个目录

    9、代码添加

     [root@localhost ~]# cd downsource/
     [root@localhost downsource]# touch 5.html
     [root@localhost downsource]# svn add 5.html 
     [root@localhost downsource]# svn commit -m "second edit"

    10、扩展

    checkout:check out导出获得文件后,导出的文件仍处于SVN版本控制中,与版本库保持关联,比如你可以进行Svn Update或者Svn Commit操作,checkout是第一次用,后面的用法就是更新。

    add 功能:向文件拷贝所在的文件夹中添加新的文件,并作出标识,是新添加的,下一步提交时将一并提交到Subversion版本库中去。简单的说就是将一个新文件加入svn,你添加再提交后该文件就进入subversion版本中去了。

    commit,SVN的提交是将在工作空间做的修改进行提交,包括文件内容的修改,文件或目录的添加,删除,命名,移动等操作。开发项目时,你会在工作拷贝中修改项目的代码,你总要把修改之后做过的改动又存回到项目仓库中去。这个过程称为“提交”。提交是将你对工作拷贝所作的所有改动发送并存储到中央项目仓库中。

    关于运维学习、分享、交流,笔者开通了微信公众号【运维猫】,感兴趣的朋友可以关注下,欢迎加入,建立属于我们自己的小圈子,一起学运维知识。

    有需要技术交流的小伙伴可以加我微信,期待与大家共同成长,本人微信:

    最近有一些星友咨询我知识星球的事,我也想继续在星球上发布更优质的内容供大家学习和探讨。运维猫公众号平台致力于为大家提供免费的学习资源。知识星球主要针对于在这方便工作、对运维特别感兴趣、想往运维方面发展的小伙伴。大家可以加入星球,一起探讨工作中的疑惑、技术上的难题、以及未来的发展趋势。

    为了保证星球的质量,知识星球每周会发表两篇文章(周三和周末)。

    知识星球会不定期的为大家提供更优惠或者免费运维峰会门票的福利。

    展开全文
  • SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。 二、SVN的下载安装 下载地址:https://tortoisesvn.net/downloads.zh.html 安装完...
  • 如何使用SVN对代码进行版本控制??

    千次阅读 2018-07-12 22:40:06
    1.如何从svn中心将需要的代码下载到本地电脑上?...修改后的代码提交选中修改后的项目或者文件:(1)直接选svn commit直接提交到版本库中;(2)或者先点击add将修改的文件提交到变更列表中,再commit;冲...
  • SVN版本管理:两种开发模式

    万次阅读 2018-04-23 23:46:25
    比如项目是proj,svn地址为svn://proj/,那么标准的svn布局是:这是一个标准的布局,trunk为主开发目录,branches为分支开发目录,tags为tag存档目录(不允许修改)。但是具体这几个目录应该如何使用,svn并没有明确...
  • 服务概述:SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS迁移到Subversion,说得简单一点SVN就是用于...
  • SVN解除项目的版本控制

    万次阅读 2016-05-05 21:05:12
    一个项目如果提交到SVN之后,就会在文件夹左下方出现绿色或红色的圆形图标,如果想把该项目引入到另一个项目中去,会发现不能被识别出来,这时候要解除版本控制,解除方法挺诡异的: 在要解除版本控制的文件夹右键...
  • IDEA 取消对项目中的SVN版本控制

    千次阅读 2018-07-30 14:49:14
    删除项目根目录下的 .idea/vsc.xml 和 .svn 隐藏目录 即可    
  • VSCODE-版本控制工具SVN

    万次阅读 2018-09-10 16:31:57
    1.在SVN中安装插件-SVN svn简介 ...本人SVN不是默认安装位置,但是无需修改vscode...3.查看SVN版本控制 CHANGES 本地发生变化的文件列表,即本地被修改的文件 UNVERSIONED 新增加的文件或文件夹列表,S...
  • SVN解除项目版本控制

    千次阅读 2017-10-18 14:54:32
    要解除版本控制的文件夹 - > 右键TortoiseSVN –> Export –> 选择同一个文件夹(目标文件夹一定要和你右击的文件夹是同一个文件夹),这时就会出现“是否解除版本控制”的对话框。
  • SVN中的check out与export的区别

    万次阅读 多人点赞 2012-07-19 14:32:28
    check out导出获得文件后,导出的文件仍处于SVN版本控制中,与版本库保持关联,比如你可以进行Svn Update或者Svn Commit操作。同时导出文件夹下有一个.svn的隐藏文件夹,存储着一些版本的元数据信息。 export ...
  • idea取消对项目的svn版本控制

    千次阅读 2016-04-10 13:28:16
    idea取消对项目的svn版本控制
  • SVN中检出(check out) 和 导出(export) 的区别

    万次阅读 多人点赞 2012-04-15 17:00:16
    SVN是常用的一种常见的版本控制软件。...check out导出获得文件后,导出的文件仍处于SVN版本控制中,与版本库保持关联,比如你可以进行Svn Update或者Svn Commit操作。同时导出文件夹下有一个.svn的隐
  • IntelliJ Idea使用自带svn进行版本控制

    万次阅读 2018-01-18 16:07:09
    关于本地创建的工程通过IntelliJ Idea自动的svn进行提交可参考...1)File --> New --> Project from Version Control --> Subversion 选择svn服务器上的对应项目,
  • 绿色,已经加入控制暂未提交红色,未加入版本控制蓝色,加入,已提交,有改动白色,加入,已提交,无改动 灰色:版本控制已忽略文件。 ...
  • Idea 使文件不受SVN版本控制

    千次阅读 热门讨论 2017-07-26 21:23:29
    在你打开的项目中 File - Settings - Version Control 不要选择版本控制文件 你正在打开的文件就不再受SVN版本控制
  • svn ignore 的用法(忽略文件及目录)

    万次阅读 2014-04-22 18:02:04
    若想创建了一个文件夹,并且把它加入版本控制,但忽略文件夹中的所有文件的内容: $ svn mkdir spool $ svn propset svn:ignore '*' spool $ svn ci -m 'Adding "spool" and ignoring its contents.' 若想创建...
  • idea:项目添加SVN版本管理快捷键

    万次阅读 2018-11-20 19:08:53
    1.打开svn功能 菜单栏》VCS》Enable Version Control Integration》下拉框选择Subversion》点击OK   2.将项目添加到svn库。 选中项目,鼠标右键,Subversion->Share Directory.   3.指定仓库位置...
1 2 3 4 5 ... 20
收藏数 74,596
精华内容 29,838
关键字:

svn版本控制