SVN 全称 Subversion,是一个开放源代码的版本控制系统,Subversion 在 2000 年由 CollabNet Inc 开发,现在发展成为 Apache 软件基金会的一个项目,同样是一个丰富的开发者和用户社区的一部 分。
  SVN 是一个开放源代码的版本控制系统,管理着随时间改变的数据。这些数据放置在一个中央资料 档案库(repository) 中。 这个档案库很像一个普通的文件服务器, 不过它会记住每一次文件的变动。说得简单一点 SVN 就是用于多个人共同 开发同一个项目,共用资源的目的。
  主要作用1)、目录版本控制  Subversion 实现了一个 “虚拟” 的版本控管文件系统,能够依时间跟踪整个目录的变动。目录和文 件都能进行版本控制。2)、真实的版本历史  Subversion 中,可以增加(add)、删除(delete)、复制(copy)和重命名(rename),无论 是文件还是目录。所有的新加的文件都从一个新的、干净的版本开始。3)、自动提交   一个提交动作,不是全部更新到了档案库中,就是完全不更新。这允许开发人员以逻 辑区间建立并提交变动,以防止当部分提交成功时出现的问题。
  基本概念 Repository(源代码库):源代码统一存放的地方 Checkout(提取):当你手上没有源代码的时候,你需要从 repository checkout 一份 Commit(提交):当你已经修改了代码,你就需要 Commit 到 repository Update (更新):当你已经 Checkout 了一份源代码,Update 一下你就可以和 Repository 上的 源代码同步,你手上的代码就会有最新的变更。
  工作流程(开始新一天的工作)
  1、从服务器下载项目组最新代码。(Checkout) 2、如果已经 Checkout 并且有人已 Commit 了代码,你可以更新以获得最新代码。(Update) 3、进入自己的分支,进行工作,每隔一个小时向服务器自己的分支提交一次代码(很多人都有这个习 惯。因为有时候自己对代码改来改去,最后又想还原到前一个小时的版本,或者看看前一个小时自己修 改了哪些代码,就需要这样做了)。(Commit)4、下班时间快到了,把自己的分支合并到服务器主分支上,一天的工作完成,并反映给服务器。 (Commit) 注意:如果两个程序员同时修改了同一个文件,SVN 可以合并这两个程序员的改动,实际上 SVN 管理源 代码是以行为单位的,就是说两个程序员只要不是修改了同一行程序,SVN 都会自动合并两种修改。如 果是同一行,SVN 会提示文件 Confict,冲突,需要手动确认。
  生命周期 1)、创建版本库  版本库相当于一个集中的空间,用于存放开发者所有的工作成果。版本库不仅能存放文件,还包括 了每次修改的历史,即每个文件的变动历史。  Create 操作是用来创建一个新的版本库。大多数情况下这个操作只会执行一次。当你创建一个新的 版本库的时候,你的版本控制系统会让你提供一些信息来标识版本库,例如创建的位置和版本库的名 字。2)、检出   Checkout 操作是用来从版本库创建一个工作副本。工作副本是开发者私人的工作空间,可以进行 内容的修改,然后提交到版本库中。3)、更新  顾名思义,update 操作是用来更新版本库的。这个操作将工作副本与版本库进行同步。由于版本 库是由整个团队共用的,当其他人提交了他们的改动之后,你的工作副本就会过期。  让我们假设 Tom 和 Jerry 是一个项目的两个开发者。他们同时从版本库中检出了最新的版本并开始 工作。此时,工作副本是与版本库完全同步的。然后,Jerry 很高效的完成了他的工作并提交了更改到 版本库中。此时 Tom 的工作副本就过期了。更新操作将会从版本库中拉取 Jerry 的最新改动并将 Tom 的工作副本进行更新。4)、执行变更   当检出之后,你就可以做很多操作来执行变更。编辑是最常用的操作。你可以编辑已存在的文件 来,例如进行文件的添加/删除操作。   你可以添加文件/目录。但是这些添加的文件目录不会立刻成为版本库的一部分,而是被添加进待 变更列表中,直到执行了 commit 操作后才会成为版本库的一部分。  同样地你可以删除文件/目录。删除操作立刻将文件从工作副本中删除掉,但该文件的实际删除只 是被添加到了待变更列表中,直到执行了 commit 操作后才会真正删除。   Rename 操作可以更改文件/目录的名字。“移动” 操作用来将文件/目录从一处移动到版本库中的另 一处。5)、复查变化 当你检出工作副本或者更新工作副本后,你的工作副本就跟版本库完全同步了。但是当你对工作副 本进行一些修改之后,你的工作副本会比版本库要新。在 commit 操作之前复查下你的修改是一个很好 的习惯。  Status 操作列出了工作副本中所进行的变动。正如我们之前提到的,你对工作副本的任何改动都会 成为待变更列表的一部分。Status 操作就是用来查看这个待变更列表。  Status 操作只是提供了一个变动列表,但并不提供变动的详细信息。你可以用 diff 操作来查看这些 变动的详细信息。6)、修复错误  我们来假设你对工作副本做了许多修改,但是现在你不想要这些修改了,这时候 revert 操作将会帮 助你。  Revert 操作重置了对工作副本的修改。它可以重置一个或多个文件/目录。当然它也可以重置整个 工作副本。在这种情况下,revert 操作将会销毁待变更列表并将工作副本恢复到原始状态。 7)、解决冲突  合并的时候可能会发生冲突。Merge 操作会自动处理可以安全合并的东西。其它的会被当做冲突。 例如,“hello.java” 文件在一个分支上被修改,在另一个分支上被删除了。这种情况就需要人为处理。 Resolve 操作就是用来帮助用户找出冲突并告诉版本库如何处理这些冲突。 8)、提交更改  Commit 操作是用来将更改从工作副本到版本库。这个操作会修改版本库的内容,其它开发者可以 通过更新他们的工作副本来查看这些修改。  在提交之前,你必须将文件/目录添加到待变更列表中。列表中记录了将会被提交的改动。当提交 的时候,我们通常会提供一个注释来说明为什么会进行这些改动。这个注释也会成为版本库历史记录的 一部分。Commit 是一个原子操作,也就是说要么完全提交成功,要么失败回滚。用户不会看到成功提 交一半的情况。
  版本冲突原因  假设 A、B 两个用户都在版本号为 100 的时候,更新了hello.txt 这个文件,A 用户在修改完成之后 提交 hello.txt 到服务器,提交成功,这个时候 hello.txt 文件的版本号已经变成 101 了。同时 B 用户在 版本号为 100 的 hello.txt 文件上作修改,修改完成之后提交到服务器时,由于不是在当前最新的 101 版本上作的修改,所以导致提交失败。版本冲突解决:解决冲突有三种选择:A、放弃自己的更新,使用 svn revert(回滚),然后提交。在这种方式下不需要使用 svn resolved(解决)B、放弃自己的更新,使用别人的更新。使用最新获取的版本覆盖目标文件,执行 resolved filename 并提交(选择文件—右键—解决)。 C、手动解决:冲突发生时,通过和其他用户沟通之后,手动更新目标文件。然后执行 resolved filename 来解除冲突,最后提交。

20182442-胡名琪相关推荐

  1. 内强体质外塑形象 东方美琪·安琪:北京四川商会举办宣讲专题

    内强体质外塑形象 东方美琪·安琪:北京四川商会举办宣讲专题 新闻中国采编网 中国新闻采编网 谋定研究中国智库网 国研智库 国情讲坛 商协社团 谋定论道 经信研究 哲商对话 万赢信采编: 图示:四川省驻 ...

  2. 数据依赖症:当今AI领域的核心风险

    在最近结束的2017年度AI星际争霸竞赛上,Facebook做出了一款人工智能"CherryPi",参与到这项旨在让各路AI技术在星际争霸游戏中同场竞技的赛事之中. 但很遗憾的是, ...

  3. 晨光文具卖出去的笔能绕地球几圈?

    来源|远川商业评论(ycsypl) 作者|胡晓琪 编辑|余佩颖 晨光的创始人陈湖雄曾说过,要在一米宽的池子里做到一万米深,而晨光的发迹可从2004年的一场合作讲起. 华与华在2004年搬到上海后接的第 ...

  4. 第十六届全国大学生智能车竞赛三个创意组别总决赛比赛成绩

    简 介: 由于受到了疫情影响,2021年第十六届全国大学生智能车三个创意组比赛也都分别采用线上软件发送.邮寄车模.以及直接利用分赛区比赛成绩来确定了总决赛队伍名次和奖项.本文只是公布了航天智慧物流.迅 ...

  5. 技术风向标 | 云原生技术架构成熟度模型解读

    从"上云"到"云上"原生,云原生提供了最优用云路径,云原生的技术价值已被广泛认可.当前行业用户全面转型云原生已是大势所趋,用户侧云原生平台建设和应用云原生化改造 ...

  6. 第十八届全国大学智能汽车竞赛报名信息统计

    01 报名信息 一.前言   截止到 2023年6月15日, 第十八届全国大学生智能车竞赛 竞速比赛 报名阶段接近尾声. 参赛赛队伍在 竞赛网站 按照 竞赛网络报名方法 进行了注册, 并提交了队伍参赛 ...

  7. 第十八届全国大学智能汽车竞赛报名信息统计:华南赛区报名队伍

    承办高校: 中南大学 比赛时间: 7月14日-16日 第十八届全国大学智能汽车竞赛报名信息统计 01 报名参赛队伍 序号 组别 学校 队伍名称 学生1 学生2 学生3 学生4 学生5 教师1 教师2 ...

  8. 2022 EdgeX中国挑战赛暨中关村国际前沿科技创新大赛EdgeX专题赛正式开幕

    2022 EdgeX中国挑战赛暨中关村国际前沿科技创新大赛EdgeX专题赛正式开幕 2022年8月3日下午,2022 EdgeX中国挑战赛暨中关村国际前沿科技创新大赛EdgeX专题赛正式拉开帷幕.大赛 ...

  9. 马斯克的OpenAI,究竟是如何在dota2中击败顶级人类选手的?

    在8月12日,埃隆·马斯克旗下旨在研究通用人工智能解决方案的公司OpenAI,所训练的一款人工智能算法在著名的电子竞技游戏Dota2国际邀请赛The International中,参与了1V1比赛环节 ...

  10. 第十八届全国大学智能汽车竞赛报名信息统计:西部赛区报名队伍

    承办高校: 重庆邮电大学 比赛时间: 7月21日-24日 第十八届全国大学智能汽车竞赛报名信息统计 01 报名参赛队伍 序号 组别 学校 队伍名称 学生1 学生2 学生3 学生4 学生5 教师1 教师 ...

最新文章

  1. 斩获 12w+ 星标的神仙项目再度上榜,简直就是一套活生生的自学编程百科全书!...
  2. 5.30 Tree Traversal + Tree manipulation
  3. 在 Windows 窗体 DataGridView 单元格中承载控件
  4. Numpy的切片操作
  5. 蓝桥杯历届试题----斐波那契(矩阵快速幂)
  6. 网管必知远程终端3389端口合理修改秘藉
  7. git 改local branch名字_最好的Git分支管理教程
  8. OCJP认证该不该考?
  9. webUploader.js 文件上传插件简用!
  10. 中国电信物联网平台入门学习笔记2: DOME程序分析
  11. 【PS】106个水彩花卉和树叶画笔
  12. 认识MyBatis、Mybatis笔记.MyBatis的核心配置,动态Mapper,动态SQL,表的关联及分页操作和缓存理解
  13. 长城脚下公社之凯宾斯基开业典礼
  14. 211西北大学,成立国家超级计算西北大学分中心!
  15. 程序员必备Java API和类搜索辅助工具-Jadeite和Apatite
  16. 用python画一个机器猫歌词_用Python语言模型和LSTM做一个Drake饶舌歌词生成器
  17. BurpSuite使用详解(三)Spider功能
  18. 在触屏设备上面利用html5裁剪图片(转)
  19. 计算机专业 大一课程,计算机专业大一课程
  20. Android UI库推荐

热门文章

  1. 走近分形与混沌(part5)--洛伦茨与吸引子
  2. 北斗三号频点_海格通信发布国内首批北斗三号双模应用专用芯片
  3. 苹果笔记本怎么找文件夹_苹果Mac电脑快速查找文件的两种方法
  4. 第一性原理分子动力学(AIMD)结果分析教程
  5. [NSSCTF][羊城杯2020]WEB复现
  6. jQ模拟下拉框以及向下三角
  7. gre 填空64-77
  8. 浅谈数据与网络安全--对网络安全的基础知识了解
  9. 安卓7.0 安兔兔 作假修改
  10. ESD介绍及TVS的原理和应用