svn工具使用

目录

svn简介

svn的一些概念


svn简介

        管理着随时间改变的数据,这些数据存放在一个档案库中,这个档案库很像一个普通的文件服务器, 不过它会记住每一次文件的变动。 这样你就可以把档案恢复到旧的版本, 或是浏览文件的变动历史。

svn的一些概念:
        

  • repository(源代码库):源代码统一存放的地方
  • Checkout(提取):当你手上没有源代码的时候,你需要从 repository 提取 一份
  • Commit(提交):当你已经修改了代码,你就需要提交到代码库
  • Update (更新):当你已经 提取了一份源代码, 更新一下你手上的代码就可以和代码库上的源代码同步,你手上的代码就会有最新的变更(是你的代码跟源代码的一致,不是让代码源跟你的一样)

 SVN 管理源代码是以行为单位的。两个程序员只要不是修改了同一行程序,SVN 都会自动合并两种修改。如果是同一行,SVN 会提示文件 Conflict, 冲突,需要手动确认。

svn的功能:1.目录版本控制:能够依时间跟踪整个目录的变动。 目录和文件都能进行版本控制。

2.真实的版本控制:你可以增加(add)、删除(delete)、复制(copy)和重命名(rename),无论是文件还是目录。所有的新加的文件都从一个新的、干净的版本开始。

3.自动提交:这允许开发人员以逻辑区间建立并提交变动,以防止当部分提交成功时出现的问题(个人理解就是:可以根据个人的逻辑范围来提交,就是你这个功能要修改,只需要提交这个功能所涉及到的代码上去就可以啦)

4.每一个文件与目录都附有一組属性关键字并和属性值相关联就是键值对的方式。5.选择不同的网络层。也就是跟其他技术的模块,一起使用。6.它对文字(人类可理解的)与二进制文件(人类无法理解的) 两类的文件都一视同仁。 这两类的文件都同样地以压缩形式储存在档案库中, 而且文件差异是以两个方向在网络上传输的。7.Subversion 建立分支与标签的方法, 就只是复制该项目, 使用的方法就类似于硬连接(hard-link)8.它主要是一群共用的 C 程序库, 具有定义完善的API。这使得 Subversion 便于维护, 并且可被其它应用程序与程序语言使用。        

svn的安装

下在准备文件:Subversion for Windows download | SourceForge.net

进入网页:

点击下载就可啦。

svn的生命周期

所谓生命周期个人理解:他的一系列操作,类似你去吃饭,吃饭这件事的生命周期:盛饭,做到位置上,吃菜。

svn的生命周期有一下几种:

1.创建版本库:版本库类似一个集中的空间,存放开发者所有的工作成果,包括:文件,每个文件的变动历史。Create操作:创建新的版本库。创建新的版本库时,你的版本控制系统会让你设计信息来标识版本库,比如库名。

2.检出:Checkout 操作:在版本库中创建副本,副本就是你工作的地方,你可以进行内容的修改,然后提交到版本库中。

3.更新:update 操作:用来更新版本库。作用:将工作副本与版本库进行同步.版本库时团队公用的,当其他人对提交他们的改动之后,你的工作副本会过期。比如:a,b两个人分别从版本库中检出同一个副本,这个时候他们的工作副本都是一样的,a工作效率高,他先把自己的副本更新上去,这时候b的副本将会过期,版本库会将 b 的工作副本进行更新,此时b的副本就是a更新的副本的内容。

4.执行变更:当检出之后,你可以用很多操作来执行变更,常用的操作就是编辑,你可以编辑已经存在的文件/目录,对文件增删改,注意添加操作:你添加文件或者目录之后,不会立马添加到版本库,而是添加到待变更列表中,你执行:commit操作才能让添加的内容添加到版本库里面。

删除操作类似,删除的文件要提交commit之后才能删除版本库的对应的文件。

Rename 操作可以更改文件/目录的名字。"移动"操作用来将文件/目录从一处移动到版本库中的另一处。

5.复查变化:就是在检出后,执行commit命令前做复查。类似:你考试交卷之前要检查试卷一样。

你commit操作之前,变更的内容和操作都在待变更列表里面:复查就是看待变更列表:

Status 操作就是用来查看这个待变更列表。(提供变动列表)

用 diff 操作来查看这些变动的详细信息。

6.修复错误:类似撤销。撤销你对副本的修改:Revert 操作重置对工作副本的修改。

revert 操作将会销毁待变更列表并将工作副本恢复到原始状态。

它可以重置一个或多个文件/目录。当然它也可以重置整个工作副本。

7. 解决冲突:         Merge 操作会自动处理可以安全合并的东西。其它的合并会被当做冲突。比如文件在一个分支上被修改,在另一个分支上被删除了。这种情况就需要人为处理。

Resolve 操作:找出冲突,并告诉版本库如何处理这些冲突。

8.提交更改:在提交之前,你必须将文件/目录添加到待变更列表中。当提交的时候,我们通常会提供一个注释来说明为什么会进行这些改动。这个注释也会成为版本库历史记录的一部分。Commit 是一个原子操作,也就是说要么完全提交成功,要么失败回滚。

生命周期总结:生命周期懂得啦多个操作:创建版本库:Create,检出:Checkout,更新:update,执行变更:就是表更之后要执行commit才会执行到版本库上,Rename操作。复盘变化:使用到:Status,diff,修复错误:revert。解决冲突:Resolve。提交更改:commit。之后学习的文章就是学习这几个操作命令如何使用。大致了解一下就可以。

  • 22
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

灭掉c与java

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值