热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

版本控制SVN的使用笔记

安装客户端和服务端下载地址,打开网址,根据自己的操作系统下载对应的版本,window用户服务端一般安装的是VisualSVN,客户端安装TortoiseSVN,在实际工作中,我们一般只需要安装To

安装

客户端和服务端下载地址,打开网址,根据自己的操作系统下载对应的版本,window用户服务端一般安装的是VisualSVN,客户端安装TortoiseSVN,在实际工作中,我们一般只需要安装TortoiseSVN,对应的IDE中安装好svn插件就可以了。

SVN Checkout

进入公司的第一天,当然是将我们的开发项目从服务器上Checkout下来了,在checkout下来之前,我们需要先在本地新建几个文件夹,例如在D:盘下面新建一个code 文件夹,code下面分别新建branches 和 trunk文件夹,branches里面以后存放所有的项目分支, trunk里面以后存放项目主干,目录结果大致如下:

1
2
code ┌ branches
├ trunk

 

假如项目分支名称为project_V1.0.1_2015_01_01,则我们一般是再在d:\code\branches目录下新建一个名为project_V1.0.1_2015_01_01的文件夹,然后将分支checkout到该文件夹目录下.在以后有新的分支时,同样以分支名命名一个新的文件夹,然后check下来。checkout主干时无需在trunk目录下新建文件夹。最后我们会发现我们本地的目录结构是和SVN服务器上目录结构一致。

与资源库同步

在update和commit操作之前,我们都需要与资源库同步一下,目的是检查一下别人是否在你操作之前已经提交过代码造成了代码冲突,有冲突的文件默认一般会有一个红色的标记,当有冲突时就需要我们手动解决冲突后再执行update或者commit操作,这里记录下以eclipse为例,怎么解决代码冲突.
如下图中,左边表示本地的代码,右边表示远程服务器上的代码,同事在我之前提交了4个接口方法,左边public void test();方法是我新加的代码,

这时我在同步代码时就需要先解决冲突,这是只需要点击箭头指向的那个小圈Copy Current change from Right to Left就可以了,右边的代码会被copy到左边去.然后保存,在文件上鼠标右键点击,然后就可以更新代码了。当然你也可以先更新下来代码后再解决冲突.不一定需要先解决冲突在更新…

更新与提交

建议一定先同步后在执行更新或者提交操作,这样你好大家也都好.commit时一定写好提交注释.

合并代码

分支代码开发完了,我们需要将代码合并到主干上去进行测试,或者两个分支在同时进行不同功能开发时,最后我们需要把一个分支的代码合并到另外一个分支上去.首先我们需要知道我们的目标是什么,合并到分支,合并到主干,到分支,到主干!!!到哪里,重点就在哪里,就已谁为标准,例如我们分支合并到主干:
就以主干为主,在上右键,选择,选择Merge a range of revisions,点击next,然后在 URL to merge from 填写svn服务器上分支路径,如:

然后点击Next,再点击Test merge,开始测试合并代码了,这时如果文件有冲突会被标记为红色,注意,这不是真正的合并代码,正式的合并需要直接点击Merge,合并成功后,只是合并到了我们本地,需要的话,还需自己commit到服务器上.Merger的过程中还可能会出现冲突,出现冲突我们怎么解决呢。

解决冲突

如果合并代码出现冲突,会出现一个提示框,要你解决冲突:
解决冲突解决冲突
然后编辑冲突,点击 Edit conflict 会跳转到代码冲突详情页:
代码详情代码详情
左边的Theirs:代表远程的代码,即这里我们的分支代码
右边的Mine:代码本地的代码,即合并到主干的主干代码
红色区域的地方就表示代码可能有冲突
这时候我们可以在左边区域或者右边区域鼠标右键,然后选择Use this text block 或者 use this whole file,一般我们是看哪边是最新的代码,然后就选中那边红色区域中的代码,然后选择Use this text block,以这个区域的代码为准,显示在下方区域.下方区域显示的是我们合并后最终的代码.
然后点击左上角的 save ,关掉窗口,出来之后一定不要忘记了点击 Resolved!!!

这样就是解决了一个文件的冲突,然后继续点击 Edit conflict ,继续解决其他冲突!直至没有冲突.


推荐阅读
  • 本文介绍了PhysioNet网站提供的生理信号处理工具箱WFDB Toolbox for Matlab的安装和使用方法。通过下载并添加到Matlab路径中或直接在Matlab中输入相关内容,即可完成安装。该工具箱提供了一系列函数,可以方便地处理生理信号数据。详细的安装和使用方法可以参考本文内容。 ... [详细]
  • 本文讨论了clone的fork与pthread_create创建线程的不同之处。进程是一个指令执行流及其执行环境,其执行环境是一个系统资源的集合。在调用系统调用fork创建一个进程时,子进程只是完全复制父进程的资源,这样得到的子进程独立于父进程,具有良好的并发性。但是二者之间的通讯需要通过专门的通讯机制,另外通过fork创建子进程系统开销很大。因此,在某些情况下,使用clone或pthread_create创建线程可能更加高效。 ... [详细]
  • 在Oracle11g以前版本中的的DataGuard物理备用数据库,可以以只读的方式打开数据库,但此时MediaRecovery利用日志进行数据同步的过 ... [详细]
  • 十大经典排序算法动图演示+Python实现
    本文介绍了十大经典排序算法的原理、演示和Python实现。排序算法分为内部排序和外部排序,常见的内部排序算法有插入排序、希尔排序、选择排序、冒泡排序、归并排序、快速排序、堆排序、基数排序等。文章还解释了时间复杂度和稳定性的概念,并提供了相关的名词解释。 ... [详细]
  • Activiti7流程定义开发笔记
    本文介绍了Activiti7流程定义的开发笔记,包括流程定义的概念、使用activiti-explorer和activiti-eclipse-designer进行建模的方式,以及生成流程图的方法。还介绍了流程定义部署的概念和步骤,包括将bpmn和png文件添加部署到activiti数据库中的方法,以及使用ZIP包进行部署的方式。同时还提到了activiti.cfg.xml文件的作用。 ... [详细]
  • Hibernate延迟加载深入分析-集合属性的延迟加载策略
    本文深入分析了Hibernate延迟加载的机制,特别是集合属性的延迟加载策略。通过延迟加载,可以降低系统的内存开销,提高Hibernate的运行性能。对于集合属性,推荐使用延迟加载策略,即在系统需要使用集合属性时才从数据库装载关联的数据,避免一次加载所有集合属性导致性能下降。 ... [详细]
  • 开发笔记:spring boot项目打成war包部署到服务器的步骤与注意事项
    本文介绍了将spring boot项目打成war包并部署到服务器的步骤与注意事项。通过本文的学习,读者可以了解到如何将spring boot项目打包成war包,并成功地部署到服务器上。 ... [详细]
  • 颜色迁移(reinhard VS welsh)
    不要谈什么天分,运气,你需要的是一个截稿日,以及一个不交稿就能打爆你狗头的人,然后你就会被自己的才华吓到。------ ... [详细]
  • 初探PLC 的ST 语言转换成C++ 的方法
    自动控制软件绕不开ST(StructureText)语言。它是IEC61131-3标准中唯一的一个高级语言。目前,大多数PLC产品支持ST ... [详细]
  • 湍流|低频_youcans 的 OpenCV 例程 200 篇106. 退化图像的逆滤波
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了youcans的OpenCV例程200篇106.退化图像的逆滤波相关的知识,希望对你有一定的参考价值。 ... [详细]
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • 不同优化算法的比较分析及实验验证
    本文介绍了神经网络优化中常用的优化方法,包括学习率调整和梯度估计修正,并通过实验验证了不同优化算法的效果。实验结果表明,Adam算法在综合考虑学习率调整和梯度估计修正方面表现较好。该研究对于优化神经网络的训练过程具有指导意义。 ... [详细]
  • Ihaveaworkfolderdirectory.我有一个工作文件夹目录。holderDir.glob(*)>holder[ProjectOne, ... [详细]
  • 本文介绍了在Ubuntu 11.10 x64环境下安装Android开发环境的步骤,并提供了解决常见问题的方法。其中包括安装Eclipse的ADT插件、解决缺少GEF插件的问题以及解决无法找到'userdata.img'文件的问题。此外,还提供了相关插件和系统镜像的下载链接。 ... [详细]
  • java io换行符_Java IO:为什么从stdin读取时,换行符的数字表示出现在控制台上?...
    只是为了更好地理解我在讲座中听到的内容(关于Java输入和输出流),我自己做了这个小程序:publicstaticvoidmain(String[]args)thro ... [详细]
author-avatar
阿都欧巴
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有