源代码管理工具之 SVN

一 基本操作

  • svn checkout : 将服务器代码完整的下载到本地
  • svn commit : 将本地修改的内容,提交到服务器
  • svn update : 将服务器最新的代码下载带本地

Checkout只需要做一次!

  • 要想利用SVN管理源代码,必须得有2套环境

    • 服务器

      • 用于存储客户端上传的源代码
      • 可以在Windows上安装Visual SVN Server
      • 大部分情况下,公司的开发人员不必亲自搭建SVN服务器
    • 客户端

      • 上传本地的源代码到服务器,或者更新服务器的代码到本地,保持同步
      • 可以在Mac上使用命令行、Versions、Cornerstone、Xcode
      • 开发人员就属于客户端这个角色

二 SVN 服务器搭建

  • 安装步骤

    • 第一步: 双击打开VisualSVN-Server-2.7.7.msi
    • 第二步:同意遵守协议
    • 第三步: 选择Visual VSN 服务器和管理控制台, 和添加SVN命令行工具到系统Path路径, 然后下一步
      源代码管理工具之 SVN_第1张图片
    • 第四步: 选择标准版本
    • 第五步:选择程序安装的路径、SVN代码仓库的路径、所使用的协议和端口
      源代码管理工具之 SVN_第2张图片
    • 第六步:开始安装
    • 第七步:安装完成后会询问你是否需要运行
    • 第八步:检查是否安装成功
      • 打开VisualSVN Server Manager查看状态或在命令行输入svnserve –help

  • 创建代码仓库

    源代码管理工具之 SVN_第3张图片

  • 添加用户

  • 设置权限
    源代码管理工具之 SVN_第4张图片

  • 访问SVN服务器

三 UNIX 常见指令

  1. cd 改变工作目录

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

    • 在UNIX中要执行什么命令,一定要知道自己当前所在的工作目录
  3. ls 查看文件

    • $ ls 显示文件
    • $ ls -a 显示所有文件
    • $ ls -l 列表显示文件
    • $ ls -la 列表显示所有文件
    • $ ls -G 带颜色显示
  4. touch 用于更改文件访问和修改时间的标准UNIX程序,也被用于创建新文件

    • $ touch myfile.txt
    • 注意:touch不修改myfile.txt内容,只更改它的访问、修改时间,如果myfile.txt不存在,它会被创建
  5. cat 连续查看文件内容

  6. more 分页查看文件内容

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

四 SVN客户端命令

  • svn checkout :下载服务器的代码到本地 (简写svn co)

  • svn commit :将改动的文件提交到服务器(简写svn ci)

  • svn update :更新服务器的代码到本地 (简写svn up)

  • svn add :向本地的版本控制库中添加新文件

  • svn delete、svn remove :从本地的版本控制库中删除文件(简写svn del、svn rm)

  • svn move :移动文件或者目录或文件更名

  • svn mkdir :创建纳入版本控制下的新目录

  • svn revert :撤销之前的一切修改

  • svn merge :将两个版本之间的差异合并到当前文件

  • svn info :查看文件的详细信息

  • svn diff :查看不同版本的区别

  • svn log :查看日志信息

  • svn list :列出版本库下的文件和目录列表

  • svn status :查看文件状态(简写svn st)

  • svn help :获取帮助信息(比如svn help ci)

  • svn lock :加锁

  • svn unlock :解锁

  • 1> SVN基本命令
    • 命令行格式:
      svn <subcommand> [options] [args]
    • 说明
      svn 子命令 [选项] [参数]

提示:
[中括号]中包含的内容是可选的
(子命令缩写)

  • 2> 查看帮助信息
    • $ svn help
      • 查看svn所有命令的帮助
    • $ svn help 子命令

检出

  • 将项目检出(下载) 至本地
    • svn checkout URL [PATH]
    • svn co URL [PATH]
      • 注意:这里的中括号[ ]代表可选(可以省略)
// 示例
  svn checkout  https://192.168.1.106/svn/Weibo/ /Users/Documents/workspace

   蓝色代表的是:代码仓库的远程地址
   橙色代表的是:将代码下载到本地的哪个路径
   如果省略橙色的路径,就下载到命令行当前所在的路径

提交

  • 将改动过的文件提交至服务器
    • svn commit -m “注释” [PATH]
    • svn ci -m “注释” [PATH]
// 示例
svn commit -m “修改了User.m文件” /Users/Desktop/workspace/Weibo/branches/User.m 橙色代表的是:提交哪个文件到服务器 如果省略橙色的路径,就将命令行所在路径中所有改动过的文件提交到服务器 

添加

  • 提交一个新建的文件到服务器,需要2个步骤

    • 添加新建的文件到本地的版本控制库中:svn add
    • 提交刚才的添加操作到服务器:svn commit
  • 如果直接提交一个没有添加到本地版本控制库中的文件,会报下面的错误

    • is not a working copy
  • 向本地的版本控制库中添加一个新文件

    • svn add PATH
  • 示例

    • svn add /Users/Desktop/workspace/Weibo/branches/User.m
    • 橙色代表的是:添加哪个文件到版本控制库中

删除

  • 删除服务器上的某个文件,需要做2个步骤

    • 将文件从本地的版本控制库中移除:svn delete 、svn remove
    • 提交刚才的删除操作到服务器:svn commit
  • 将文件从本地的版本控制库中移除

    • svn delete PATH
  • 示例

    • svn delete /Users/Desktop/workspace/Weibo/branches/User.m
    • 橙色代表的是:将哪个文件从版本控制库中移除

更新

  • 将服务器的最新代码更新到本地

    • svn update [PATH]
  • 示例

    • svn update /Users/lnj/Desktop/workspace/Weibo/branches/User.m
    • 橙色代表的是:更新哪个文件的内容
    • 如果省略橙色的路径,就更新命令行所在路径的所有内容
  • 将文件恢复至某个版本

    • svn update -r 版本号 [PATH]

五 加入开发

  • 1>将服务器所有的内容下载到本地
    • svn checkout 服务器地址 —username=zs —password=zs
  • 2>开始开发
    • touch person.h person.m : 创建person类
    • svn add person.h person.m : 将person类添加到本地svn管理中
    • svn commit -m “创建了person类” : 将person类提交到服务器
  • 3>项目经理更新代码

    • svn update : 将服务器最新的代码更新到本地(如果是新文件则下载,如果已有文件,则更新)
  • 代码冲突

    • out of date : 过期
    • df : 在命令行中给展示所有的不同的地方
    • e : 在命令行编辑冲突
    • s : 展示可解决冲突的选项
    • mc : 使用我的代码,来覆盖服务器代码
    • tc : 使用服务器的代码,来覆盖我的代码
    • p : 对比所有的版本变化,手动解决冲突—>svn resolved person.h

注意:
1>在修改公共文件之前,最好先update,然后再修改
2>在修改公共文件之前,可以和同事说一声,先不要修改文件,修改完之后让同事更新

六 图形化界⾯面⼯工具

  • 1.项⺫目经理初始化项目
    • 1>项目经理将服务器已有的内容下载到本地
      • 记住选择正确的svn版本号—>1.7
    • 2>项目经理创建项目到code文件夹
    • 3>项目经理忽略掉一些不需要的文件
      • Xcode会帮我们记录当前正在编辑的文件,下次打开时停留在该文件
         - Xcode会帮我们记录目录打开情况,同事不需要共享
      • 断点信息同事不需要共享,所有也需要忽略
      • xcuserdata
  • 2.使⽤用Xcode的svn注意点
    • 1>当项目中如果使用到了静态库,必须使用命令行将静态库添加到svn管理之下
    • 2>项目中如果使⽤用storyboard,svn的管理也需要特别注意
      • 如果可以使用xib那么尽量使用xib
      • 保证同时只有一个人在修改storyboard

你可能感兴趣的:(SVN,源代码)