Mac OS X工具

源代码管理工具-SVN

2016-02-18  本文已影响482人  牧马人_hlc

源代码管理工具-SVN



一. 了解-源代码管理工具概述

1. 源代码管理工具的作用?

能追踪一个项目从诞生一直到定案的过程
记录一个项目的所有内容变化,无限制返回
查看特定版本的修订情况

2. 常见的源代码管理工具有哪些?

CVS

SVN

GIT

3. 集中式和分布式的区别

  1. 集中式和分布式资料链接

  2. 集中式和分布式资料链接

  3. 集中式和分布式资料链接


二. 掌握-SVN的基本介绍

1. 工作场景

  1. 进入公司需要做的关于开发的第一件事, 就是向项目经理索要SVN服务器地址+用户名+密码

2. 角色解释

服务器: 用于存放所有版本的代码,供客户端上传下载更新
客户端: 通过客户端下载上传本地代码
用户名/密码: 验证人员身份,判断是否有操作权限;

3. 项目开发中的基本操作

  1. 项目经理初始化项目结构并上传到服务器
  2. 苦逼程序猿根据地址+用户名+密码下载一份完整代码到本地
  3. 开始开发,任务完成后,提交任务代码到服务器
  4. 从服务器上更新其他同事的代码到本地

4. 以上操作对应到SVN操作体现

  1. svn import (项目经理做的)
  2. svn checkout : 将服务器所有代码下载到本地
  3. svn commit : 提交本地最新代码到服务器
  4. svn update : 从服务器更新最新被修改的代码

5. 版本控制策略(补充)

svn : 更新-修改-合并

其他版本控制策略: 锁定-修改-解锁

三. 了解-SVN服务器配置

  1. 服务器作用

用于存储/备份各个版本的代码
供客户端下载/上传/删除代码

  1. 服务器环境搭建

Mac 下直接配置(Mac 下安装SVN), (Mac下配置SVN 服务器)

Windows下安装Visual SVN Server(Visual SVN Server下载地址)

  1. 安装步骤

全程”下一步”,傻瓜式安装.

  1. 控制区几个选项的作用

Repository

Users

Groups

  1. 访问测试

可以通过浏览器,输入代码仓库地址进行访问

  1. 操作补充

在windows下面查看ip 地址
开始 —> 运行 cmd
在命令行里面 运行 ipconfig

四. 掌握-UNIX基本命令

1. 必学命令

help [子命令] : 查看某一个具体的子命令的使用方法

2. 常用命令

3. 补充

. 代表当前文件路径
.. 代表上级目录

以 .开头的文件,代表隐藏文件

4. 使用注意

1> 命令和参数之间需要添加空格
2> 如果要使用当前目录中的文件名,输入到一半时,按TAB键能够补全

五. 掌握-SVN终端演练(个人开发)

1. 命令格式

命令行格式:
svn <subcommand> [options] [args]
svn 子命令 [选项] [参数]

其中中括号里面的内容可以省略

2. 必学命令

svn [子命令] --help
svn help [子命令]

3. 实战演练

  1. 项目经理初始化项目,并上传到SVN服务器

方案1:
(1) 创建临时项目
(2) svn import [path] URL --username=用户名 --password=密码 -m "注释"

方案2:
(1) svn checkout URL [path] --username=用户名 --password=密码 : 初始化本地仓库
(2) 创建项目
(3) 使用 svn add 命令将项目所有文件添加到本地版本控制
(4) 使用 svn commit 提交本地项目到远程服务器

  1. 程序猿从服务器下载一份完整代码到本地开始开发

svn checkout URL [path] --username=用户名 --password=密码

  1. 修改文件提交

(1) 修改文件
(2) 使用svn commit -m "注释" : 提交本地文件到服务器

  1. 新建文件提交

(1) 新建文件
(2) 使用 svn add 命令将项目所有文件添加到本地版本控制
(3) 使用 svn commit -m "注释" : 提交本地项目到远程服务器

  1. 删除文件提交

一定不要手动删除文件

(1) svn remove filename 或者 svn delete filename 从本地版本控制以及对应文件删除
(2) svn commit -m "注释" : 提交本地操作到服务器, 使服务器也删除对应的文件

  1. 常用命令补充

  2. svn status
    查看当前工作空间内, 所有 有变化的文件 的状态
    如果执行此命令什么都没输出, 代表本地没有东西要提交

  3. svn log
    查看当前版本的操作日志(什么人, 什么时间, 做了什么操作)

  4. 版本控制中,各个文件状态参考

' ' 没有修改
'A' 被添加到本地版本控制
'C' 冲突
'D' 被删除(通过svn命令删除的文件)
'I' 被忽略
'M' 被修改
'R' 被替换
‘G’ 被合并
‘U’ 已经更新
‘E’ 已经存在
'X' 外部定义创建的版本目录
'?' 文件没有被添加到本地版本控制
'!' 文件丢失或者不完整(不是通过svn命令删除的文件)
'' 受控文件被其他文件阻隔

  1. 注意事项

六. 掌握-SVN终端演练(多人开发)

  1. 准备工作

熊大和熊二,分别通过
svn checkout URL [path] --username=用户名 --password=密码
命令初始化本地版本控制库

  1. 添加文件同步

  2. 熊大创建文件并提交到服务器
    svn add fileName
    svn commit -m "新增文件"

  3. 熊二从服务器更新文件
    svn update

  4. 修改文件同步

  5. 熊大修改文件并提交到服务器
    svn commit -m "修改文件"

  6. 熊二从服务器更新文件
    svn update

  7. 删除文件同步

  8. 熊大删除文件并提交到服务器
    svn delete fileName
    svn commit -m "删除文件"

  9. 熊二从服务器更新文件
    svn update

  10. 多人合作开发中的常见问题

<<<<<<< .mine
此处代表是我的代码
=======
此处代表服务器代码

.r7


七. 了解-SVN终端演练-版本回退

  1. 版本回退概念以及原因?

概念: 是指将代码(本地代码或者服务器代码), 回退到之前记录的某一特定版本
原因: 如果代码做错了, 想返回之前某个状态重做;

  1. 修改了,但未提交的情况下, 回退代码

方案1: (大力推荐)
svn revert (作用:返回到上次提交后版本对应的最原始的状态)

方案2: (不推荐)
删除整个项目,重新checkout

  1. 修改了,并且提交了的情况反悔

方案1: 大力推荐
- svn update
(作用: 将本地代码更新到与服务器相同的版本)
- svn merge 文件名 -r 版本1:版本2
(作用: 把版本1 -> 版本2 的 diff 作用在当前版本)
- svn commit -m “本地和服务器都回退到某一指定版本”
(作用: 让服务器代码也退回到之前某个版本状态)

方案2:
- svn update -r 指定版本号(此时本地代码已经变化,但是服务器没有改变)
--------以下步骤是为了让服务器代码也回滚到以前的版本----------
- 修改部分文件
- svn update (此时会产生冲突, 选择使用自己的代码即可)
- 再次提交代码

方案3:
- 手动保存需要回退的文件内容
- 删除文件,提交到服务器
- 重新添加文件,上传到服务器


八. 掌握-Cornerstone基本使用

  1. 掌握如何添加远程代码仓库的关联
  2. 掌握如何checkout, 下载服务器代码, 以及初始化本地版本控制库
  3. 掌握如何新建文件提交, 修改文件提交, 删除文件提交
  4. 掌握版本日志查看, 以及了解版本回退
  5. 掌握多人开发中的超时问题和冲突问题的解决

九. 掌握-Xcode管理SVN

  1. 掌握怎样添加远程代码仓库的关联
  2. 掌握怎样checkout, 下载服务器代码, 以及初始化本地版本控制库
  3. 掌握怎样新建文件提交, 修改文件提交, 删除文件提交
  4. 掌握版本日志查看, 以及了解版本回退
  5. 掌握多人开发中的超时问题和冲突问题的解决

开发经验: 最好忽略没必要提交的文件

** 过滤不需要上传的文件, 忽略文件(xcuserdata文件夹)**

文件打开状态
断点信息
文件夹关闭打开状态
** 注意:projct setting文件不要忽略 **
存放一些文件顺序和文件夹结构,文件引用等信息


十. 了解-SVN目录规范

  1. 文件目录作用?

trunk : 主干,当前开发项目的主目录;
我们之前更新代码,提交代码都是在这个文件夹进行操作

brannches:分支目录
添加非主线功能时使用,开发测试之后,可以合并到主干项目中。修复Bug,研发不确定的新功能都在这里做

tags:标记目录,通常作为重大版本的备份;
如果有发布版本出现Bug,可以快速的找到对应版本的项目备份,然后开一个分支,进行Bug修复,用于与主干区分

  1. 掌握利用图形客户端版本备份流程
  2. 了解已发布版本bug解决流程

十一. 了解-SVN 托管平台

1. svnspot

http://code.svnspot.com

2. svnchina

http://www.svnchina.com

上一篇 下一篇

猜你喜欢

热点阅读