01. SVN介绍

SVN 是集中式源代码管理工具

概念:

1> Repository   代码仓库,保存代码的仓库

2> Server       服务器,保存所有版本的代码仓库

3> Client       客户端,只保存当前用户的代码仓库

4> 用户名&密码   访问代码仓库需要使用自己的"用户名和密码",从而可以区分出不同的人对代码做的修改

操作:

1> checkout     将服务器上最新的代码仓库下载到本地,"只需要做一次"

2> update       从服务器上将其他人所做的修改下载到本地,"每天上班必须要做的事情"

3> commit       将工作提交到服务器,"每天下班之前至少做一次"

02. SVN服务器安装 Visual SVN Server

提示:一般程序员是没有机会安装SVN服务器的,以下内容仅供了解服务器上的安装及配置过程

* Visual SVN Server 是运行在windows操作系统上的,集成了Subversion和Apache

* 傻瓜式安装一步到位,并提供了图形化界面,安装简单配置方便

* 下载地址:http://www.visualsvn.com/server/download/

1>  安装

*   程序目录

*   代码仓库目录

2>  添加代码仓库"weibo"

*   测试时暂时不勾选默认结构(trunk, branches, tags),但是当在做项目中要勾选

3>  添加用户

#   用户名     口令

#   manager   manager

#   zhangsan  zhangsan

#   lisi      lisi

4>  添加群组,通过群组可以一次性设置多个用户对代码仓库的访问权限,便于管理

03.Unix常用命令

1>  显示隐藏文件夹

# 显示隐藏文件

$ defaults write com.apple.finder AppleShowAllFiles Yes && killall Finder

# 不显示隐藏文件

$ defaults write com.apple.finder AppleShowAllFiles No && killall Finder

2>  SVN基本命令

命令行格式:

svn <subcommand> [options] [args]

说明

svn 子命令 [选项] [参数]

提示:

#   [中括号]中包含的内容是可选的

#   (子命令缩写)

3>  查看帮助信息

$ svn help

查看svn所有命令的帮助

$ svn help 子命令

4>  UNIX常用命令(UNIX常用命令.m)

1.  cd      改变工作目录

2.  pwd     输出当前工作目录的绝对路径

  在UNIX中要执行什么命令,一定要知道自己当前所在的工作目录

3.    $ ls      查看文件

    $ ls        显示文件

  $ ls -a     显示所有文件

  $ ls -l     列表显示文件

  $ ls -la    列表显示所有文件

4.  touch   用于更改文件访问和修改时间的标准UNIX程序,也被用于创建新文件

$ touch test.txt

注意:touch不修改test.txt内容,只更改它的访问、修改时间,如果test.txt不存在,它会被创建

5.  cat     连续查看文件内容

6.  more    分页查看文件内容

04. SVN在命令下操作流程

01. 将服务器文件下载到本地

# 切换工作目录

$ cd 经理的工作目录

# checkout服务器上的代码仓库

$ svn co http://192.168.1.103/svn/weibo --username=manager --password=manager

提示:checkout(co)之后,命令行会记录用户名和密码,后续操作不用再另行指定

02. 经理添加文件

* svn 常用命令

--------------------------------------------------------------------------------

# 查看本地代码库状态

$ svn st

错误提示:"is not a working copy",必须在svn的工作目录下才能正确使用svn的命令

# 查看svn日志

$ svn log

# 查看某一个文件的日志

$ svn log filename

# 查看某一个文件某个版本的日志

$ svn log filename@1

* 创建文件

--------------------------------------------------------------------------------

# 切换到工作目录

$ cd weibo

# 创建文件

$ touch main.c

# 打开并编写文件内容

$ open main.c

* 将文件提交到服务器

--------------------------------------------------------------------------------

# 查看工作目录状态

$ svn st

# 将文件添加到本地版本库中

$ svn add main.c

# 将文件提交到服务器的版本库中

$ svn ci -m "添加了main.c文件"

03. 团队成员加入

1>  张三

$ svn co http://10.0.1.15/svn/weibo --username=zhangsan --password=zhangsan

2>  李四

$ svn co http://10.0.1.15/svn/weibo --username=lisi --password=lisi

1> 项目准备工作,通常由项目经理完成

2> 程序员只需要把项目 co 到本地即可

提示:新入职一家公司后,别忘记让经理分配 svn 的账号和密码

04. 张三添加文件

# 添加文件 Person.h Person.m

$ touch Person.h Person.m

# 修改 Person.h Person.m

$ open Person.h

$ open Person.m

# 将 Person.h Person.m 添加到本地代码库

$ svn add Person.*

# 将内容提交到服务器

$ svn ci -m "添加了Person类"

05. 删除文件

# 删除文件

$ svn rm Person.h

# 提交删除

$ svn ci -m "删除了文件"

注意:不要使用文件管理器直接删除文件

06. 撤销修改

$ svn revert Person.m

07. 恢复到之前的某个版本

$ svn update -r 5

$ svn up

08. 冲突解决

(p) postpone            对比

(mc) mine-conflict      使用我的

(tc) theirs-conflict    使用对方的

05. SVN文件状态

' ' 没有修改

'A' 被添加到本地代码仓库

'C' 冲突

'D' 被删除

'I' 被忽略

'M' 被修改

'R' 被替换

'X' 外部定义创建的版本目录

'?' 文件没有被添加到本地版本库内

'!' 文件丢失或者不完整(不是通过svn命令删除的文件)

'~' 受控文件被其他文件阻隔

06. SVN图形化工具CornerStone上的操作流程

01. 安装CornerStone

02. 具体操作

1>  添加远程代码仓库

2>  导出代码库到本地

3>  在本地目录下使用Xcode新建项目

注意:不要勾选 git,两套源代码管理同时存在会发生冲突

4>  提交到代码仓库

5>  其他用户操作

03. 忽略一些不需要上传的文件

04. 目录规范

1>  Trunk

目前项目正在开发的版本

通常进入公司之后在该目录下开发

2>  Tags

存放已经上线的重大版本

3>  Branches

当发生重大bug或者有新需求时

iOS源代码管理svn的更多相关文章

  1. iOS 源代码管理工具之SVN

    源代码管理工具之SVN 源代码管理工具SVN是一款非常强大的源代码管理工具,现在国内70%-90%的公司都在使用SVN来管理源代码,下面就让小编给大家着重介绍一下SVN的使用,SVN的使用主要分为下面 ...

  2. iOS开发——源代码管理——SVN

    一.源代码管理(svn)简介 01. 源代码管理工具概述 ======================================================================= ...

  3. iOS源代码管理工具

    源代码管理工具简介 1.为什么会出现源代码管理工具? 为了解决在软件开发过程中,由源代码引发的各种蛋疼.繁琐的问题 2.源代码管理不当可能会引起的后果? 无法后悔:做错了一个操作后,不能回到之前的操作 ...

  4. iOS开发——源代码管理——svn 命令行下常用的几个命令

    1.将文件checkout到本地目录    svn checkout path(path是服务器上的目录)    例如:svn checkout svn://192.168.1.1/pro/domai ...

  5. 源代码管理SVN的使用

    SVN 全称是Subversion,集中式版本控制之王者 SVN 版本控制,需要自己搭建一个管理代码的服务器,提供开发人员,上传和下载 1.基本介绍 使用环境 要想利用SVN管理源代码,必须得有2套环 ...

  6. iOS核心笔记—源代码管理工具-SVN

    源代码管理工具-SVN 一. 源代码管理工具概述 1. 源代码管理工具的作用? > 能追踪一个项目从诞生一直到定案的过程 > 记录一个项目的所有内容变化,无限制返回 > 查看特定版本 ...

  7. IOS SVN源代码管理工具使用

    01.    源代码管理工具概述(PPT)===================================================* 源代码管理工具的作用:# 能追踪一个项目从诞生一直到 ...

  8. [ios2]iOS 使用subversion管理iOS源代码 【转】

    使用subversion管理iOS源代码 1.安装和配置subversion服务器 在windows 服务器上安装VisualSVN-Server,下载地址http://www.visualsvn.c ...

  9. 如何使用subversion管理iOS源代码

    本文转载至 http://2009315319.blog.51cto.com/701759/819216 使用subversion管理iOS源代码 1.安装和配置subversion服务器 在wind ...

随机推荐

  1. linux中grep命令

    grep 是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来. grep常用用法 [root@www ~]# grep [-acinv] [--color=auto] '搜寻字 ...

  2. jdk/java版本与Android源码编译中的错误

    错误一:javap未指向有效的java版本 Traceback (most recent call last): File "../../base/android/jni_generator ...

  3. 安装openstack 时 遇见的一些问题及解决方法!

    感谢朋友支持本博客,欢迎共同探讨交流.因为能力和时间有限,错误之处在所难免.欢迎指正! 假设转载.请保留作者信息. 博客地址:http://blog.csdn.net/qq_21398167 原博文地 ...

  4. hibernate学习系列-----(1)开发环境搭建

    其实一两个月前就在了解hibernate方面的知识了,但一直以来,都没有好好的总结,而且一直使用的是myeclipse,感觉有些傻瓜式的操作就可以搭建起hibernate的开发环境,但这样一点都不好, ...

  5. Memcached进程挂掉自动重启脚本

    vim memcached_check.sh   #!/bin/sh #check memcached process and restart if down PATH=$PATH:/opt/env/ ...

  6. DNS 取得授权

    1.阿里云上cnroot.cn申请DNS解析服务器 也就是cnroot.cn下的子域名都从这个DNS上获取. 如www.cnroot.cn 如 handle.cnroot.cn 2.vi /home/ ...

  7. [转载]Error -27796: Failed to connect to server

      原文地址:Error -27796: Failed to connect to server "test.shunde.gov.cn:80"作者:蓝小C 问题描述: 使用Loa ...

  8. ExtJs的Ext.grid.GridPanel不能选择复制表格中的内容解决方案

    今天遇到grid复制的问题,在网上找到了一个解决办法,只需改下CSS和JS,给大家分享一下: 本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/dy_paradise/a ...

  9. 改变UITextField的Placeholder颜色

    通过 attributedPlaceholder 属性来改变 if([textField respondsToSelector:@selector(setAttributedPlaceholder:) ...

  10. 隔行换色table

    <style type="text/css"> table { margin: 0 auto; width: 600px; } table { border: 1px ...