安装

客户端和服务端下载地址,打开网址,根据自己的操作系统下载对应的版本,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 ,继续解决其他冲突!直至没有冲突.

版本控制SVN的使用笔记的更多相关文章

  1. iOS开发——开发实战篇&版本控制SVN和Git使用详解

     版本控制SVN和Git使用详解     公司的实际开发中,在天朝使用较多的还是SVN,因为SVN是集中式的,在天朝上班你们都懂的!     -----------------svn--------- ...

  2. 【版本控制——svn】

    reposity_name   //版本库 { Passwd //验证密码文件 Authz //权限控制 Server.conf //主配置 } Authz //权限控制 //由[groups]标签控 ...

  3. 个人环境搭建——版本控制SVN

    版本控制SVN SVN服务器配置: 第一部分:svn服务器搭建(主要是四步走) 参考:http://www.son1c.cn/show/920.html 一,安装Subversion sudo apt ...

  4. 版本控制— SVN & git

    版本控制—— SVN & GIT 提问 什么是版本控制? 是能够一直监视代码文件的变更,并存储这些文件以便将来引用的一种机制(软件) 为什么要使用版本控制? (1)记录哪个开发人员做了变更 ( ...

  5. SVN命令行笔记

    SVN命令行笔记 近期玩了一下命令行,记录如下. svn info <path> #查看文件,路径信息 svn log <path> #查看文件,路径历史记录 svn st(s ...

  6. 版本控制-svn服务器搭建和常用命令(centos 6.3)

    Svn是比较优秀的版本控制工具,虽然功能和性能上无法和Git媲美,但由于其容易搭建和使用的特性,所以在各个小公司还是很受欢迎的.使用Git可参考<版本控制-Git服务器搭建和常用命令使用> ...

  7. 版本控制 - SVN/TortoiseSVN

    研读了blog: 1. http://www.open-open.com/lib/view/open1346982569725.html  2. http://www.360doc.com/conte ...

  8. SVN快速入门笔记【转】

    1. SVN版本控制软件目的 协作开发 远程开发 版本回退 2. 什么是SVN subVersion 支持平台操作 支持版本回退 3. 获取SVN软件 属于C/S结构软件(客户端与服务端) serve ...

  9. Git 与 SVN 命令学习笔记

    一:Git git config --global user.name "you name"   #设置用户名git config --global user.email &quo ...

随机推荐

  1. Mysql安装发生「Access denied for user ‘root’@’localhost’ (using password: NO)」错误

    参考:http://www.aipacommander.com/entry/2014/05/26/152247 mysql_secure_installation 依赖重置密码

  2. 类似于input输入框placeholder的效果,兼容ie8

    $(function(){    //判断浏览器是否支持placeholder属性  supportPlaceholder='placeholder'in document.createElement ...

  3. 应用程序有bug崩溃重启的案例

    1.程序主界面代码 using System;using System.Collections.Generic;using System.Diagnostics;using System.Linq;u ...

  4. HUD-5379

    Mahjong tree Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Tota ...

  5. python 几种循环性能测试: while, for, 列表生成式, map等

    直接上代码: #!/usr/bin/env python # -*- coding: utf-8 -*- # @Time : 2018/07/24 16:23 import itertools imp ...

  6. h5游戏制作

    前言: 好久没更新博客了,以前很多都不会,所以常常写博客总结,倒是现在有点点经验了就懒了.在过去的几个月里,在canvas游戏框架方面,撸过了CreateJS,玩得了Egret,又学过PIXI.js. ...

  7. String的hashCode分析

    /** * Returns a hash code for this string. The hash code for a * {@code String} object is computed a ...

  8. Interllij IDEA 注释模板(类和方法)

    类上的注释: file->setting->Editor->Filr and Code Templates->Includes->File Header /** * @A ...

  9. 快速判断&求出区间相交的长度

    有两个区间A[a1,b1], B[a2,b2],判断这两个区间有没有交集.我们可以分为两种思维来判断: /** *思路就是如果两个区间不相交,那么最大的开始端一定大于最小的结束端 **/ if(max ...

  10. ST表算法笔记

    [模板]洛谷P3865 #include<cstdio> #include<string> #include<cstdlib> #include<cmath& ...