iOS SVN源代码管理工具使用

转自:https://www.jianshu.com/p/97a65b0921ce

1、安装VisualSVN软件

用于搭建服务器,添加仓库和配置用户信息权限等操作(项目经理需要做的,员工一般不用)


2、终端指令

常用命令行及简写:

- 下载项目:svn checkout -> svn co      
- 提交代码:svn commit -> svn ci         **常用**
- 更新代码:svn update -> svn up         **常用**
- 删除文件:svn remove -> svn rm
- 查看版本信息:svn log
- 查看文件状态:svn status -> svn st


常见文件状态

-  ? : 不在svn的管理之下
- A : 该文件在已经添加到svn的管理之下,但是只是保存在本地,并没有提交到服务器
- M : 该文件在本地已经被修改,但是没有传到服务器
- D : 该文件在本地已经删除,但是服务器依然有该文件,删除操作没有更新到服务器
- C:产生冲突
-  I :该文件已经被忽略
-  ! : 文件丢失或不完整(无法识别该文件)
- G :产生冲突后,更新操作去解决冲突相当于合并
  • 项目经理操作
 
  • 从服务器下载配置内容:
    svn checkout 服务器项目地址 --username=用户名--password=密码

  • 初始化项目
    创建项目 : touch 项目名
    添加到svn的管理 : add 项目名
    将项目上传服务器 : svn commit -m “提交内容的注释 ”

  • 员工A加入开发

 
  • 将服务器内容下载到本地
    svn checkout 服务器地址 --username=用户名--password=密码

  • 开始开发
    创建文件 : touch 文件名
    提交到服务器 : svn commit -m “提交内容的注释”

  • 项目经理更新代码
    svn update (如果该文件已经在本地则更新,不在本地则下载)

  • 新员工B加入开发

1、向项目经理要一些东西

  • SVN服务器地址、账号及密码
  • 需求文档 : 项目有什么需求,要实现什么功能
  • 接口文档 : 详细的记录服务器所有接口
  • 效果图: 界面最终要实现什么样的效果

2、开始开发

  • 将服务器已有的内容下载到本地:
    svn checkout 服务器地址 --username=用户名--password=密码
  • 创建文件:
    touch 文件名
  • 将创建文件添加到SVN管理(*代表将文件夹内所有文件添加到SVN管理)
    svn add *
  • 提交到服务器
    svn commit -m “提交内容的注释(说明)

  • 版本回退
 

1、 svn update -r版本号
先回退到某个版本,确认下该版本是否是自己打算回退的版本
2、 svn update :
将本地文件更新到最新版本
3、 svn merge -r最新版本号:要回退版本号 person.h
将两个版本进行合并
4、svn commit -m “回退到某版本
重新提交服务器

  • 删除文件
 
  • svn remove 文件名

  • svn commit -m “删除了某个文件

  • 查看版本信息

 
svn update  
  先从服务器更新一下最新内容 
svn log
  再查看提交的各版本信息
  • 代码冲突
  • out of date : 过期,本地版本号低于服务器的版本
  • df : 在命令 中展 所有的不同
  • e : 在命令 中来编辑冲突
  • mc: 使用我的本地的代码来覆盖服务器的代码
  • tc : 使用服务器的代码来覆盖我的代码
  • p : 延迟解决冲突,展示所有冲突的文件, 手动解决冲突: svn resolved person.h

注意: 1 > 尽量在修改文件之前,先update 2 >如果修改公共文件,最好先跟同事打招呼,让他先别修改,修改完之后,让他更新

3、图形化界面: CornerStone

  • 项目经理操作:

  • 界面概览

     

    Snip20160806_3.png

  • 添加远程服务器仓库

     

    Snip20160806_5.png

  • 将服务器仓库代码checkout到本地

     

    Snip20160806_7.png

  • 选择保存到本地的路径

     

    Snip20160806_8.png

  • 通过xcode创建项目保存到刚才checkout的本地路径

     

    Snip20160806_9.png

  • 将文件添加到SVN管理(手动点击?号)

     

    Snip20160806_10.png

  • Commit初始化

    Snip20160807_11.png


    ![Uploading Snip20160807_11_748844.png . . .]](http://upload-images.jianshu.io/upload_images/2068665-7c5ca669c9495d9e.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
  • 配置忽略文件

     

    Snip20160807_19.png

需要忽略的文件

  • xcode会默认记录之前停留文件,下次打开依然停留在该文件,这个不需要共享

  • xcode会默认记录之前目录的打开情况,同事不需要,没必要共享

  • 在代码中打的断点信息,不需要进行共享

  • 在xcode可以进行上面3点操作,让它生成新的xcuserdata数据,然后再忽略一下即可

     

    Snip20160807_26.png

  • 忽略掉文件之后先update一下然后再commit即可

     

    Snip20160807_28.png

  • 员工A加入开发

  • 先添加服务器仓库

     

    Snip20160807_30.png

  • 将仓库代码checkout到本地

     

    Snip20160807_31.png

  • 然后就可以打开项目开始开发了,后面的Commit和update操作直接在Xcode里面即可(Xcode工具栏—> Source Controller—>CheckOut/update)

  • 冲突解决

  • 当在xcode内Commit代码的时候,提示如下信息:

     

    Snip20160807_32.png

  • 先update一下本地代码,解决冲突

     

    Snip20160807_33.png

  • 再Commit到服务器

4、使用Xcode CheckOut代码

  • 在偏好设置添加远程代码仓库

     

    Snip20160807_34.png

     

    Snip20160807_38.png

  • 然后再使用xcode工具条的Resource Control进行checkout代码操作

     

    Snip20160807_39.png

  • 后面就是正常的Commit和update操作了...

5、Xcode中使用svn的注意点:

  • 1、如果使用到静态库必须使用命令行将静态库添加到svn的管理之下

  • 2、如果在项目中能使用xib,尽量使用xib;如果必须使用storyboard,尽量保证只有一个人在操作storyboard



作者:木头Lee
链接:https://www.jianshu.com/p/97a65b0921ce
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

猜你喜欢

转载自blog.csdn.net/zhanglizhi111/article/details/83855574