源代码管理工具 SVN在开发中的使用

1.公司常用命令:
svn checkout 服务器地址 —username=账号 —password=密码
svn update 更新到最新的版本
svn commit -m “注释” 将本地的代码提交到服务器
svn add 文件名 在添加静态库的时候需要使用,其他时候不经常使用;
2.命令行中版本的回退
3.图形化界面的使用
使用Xcode进行文件添加和进行忽略操作;
4.xcode使用SVN进行开发的注意点:
(1)如果使用到静态库时候需要特别注意,必须使用命令行将静态库添加到svn的管理之下;(动态库只能苹果使用,我们使用的都是静态库);
cd 想要到达的文件夹路径; 在命令行中拖拽找到静态库的.a文件的路径;
svn add 静态库名 :添加静态库
svn commit -m “注释” :提交到服务器的库中;

一、SVN

1.从服务器上下载代码到本地

2.服务器的搭建
需要使用软件:VisualSVN-Server-2.1.2.msi,在windows上安装;
创建仓库,添加用户;在苹果电脑上访问服务器的URL时候需要把url前面的主机名改为IP地址;

3.经理初始化项目 (命名行演示):
(1).经理将服务器已有的内容下载到本地;
注意:(不要删除或编辑下载下来的 .svn文件夹);
svn checkout 服务器地址 —username=mgr —password=mgr
注意:服务器地址为从仓库复制的url地址,只到仓库那一层,不到最子层路径;

(2).经理初始化项目
touch main.m 来创建main.m文件;
svn add main.m 将main.m添加到svn的管理之下
svn commit -m “注释” main.m 将main.m上传到服务器,并添加注释;如果注释后边没有加文件名,就会默认上传文件夹下所有的文件,并更新服务器的同名文件;

(3).查看文件状态:
查看文件是否在svn的管理之下,或者是否进行了修改但没有提交;
svn status 查看文件状态

(4)一些常见的文件状态
‘ ‘ 没有修改
‘A‘ 被添加到本地代码仓库
‘C‘ 冲突
‘D‘ 被删除
‘I‘ 被忽略
‘M‘ 被修改
‘R‘ 被替换
‘X‘ 外部定义创建的版本目录
‘?‘ 文件没有被添加到本地版本库内,不在SVN的管理之下
‘!‘ 文件丢失或者不完整(不识别该文件)
‘~‘ 受控文件被其他文件阻隔
‘U‘ 更新最新的代码到本地(本地有文件的情况下)
‘G‘ 产生冲突后,更新操作去解决冲突,相当于进行合并

4.张三加入开发
(1)将服务器所有的内容下载到本地;
svn checkout 服务器地址 —username=zs —password=zs
(2)svn update 将服务器的最新状态更新到本地,(如果本地存在,就更新;如果本地不存在,就下载下来)

开始开发:
(3)touch person.h 创建文件person.h
svn add person.h 将文件添加到svn的管理之下
(4)open person.h 打开文件并修改
(5)svn commit -m “注释” person.h 上传到服务器
注意,在实际的开发过程中只需要使用:
svn checkout 服务器地址 —username=mgr —password=mgr
和svn commit -m “注释” 这两行代码就够了,因为Xcode开发时候会默认将创建的文件进行添加操作;

5.命令行的其他使用:
简写,版本回退,删除文件,查看版本信息;
(1)简写:
svn co;svn up;snv ci;snd st;
(2)版本回退
svn update -r 5 先回退到某个版本,观察是否是想要的版本;
svn update 更新到最新的版本
svn merge -r7:6 文件名 将第6个版本的这个文件合并到版本7,也就是使用第6个版本的文件
svn commit -m “注释” person.h 将回退后的版本上传到服务器
(3)删除文件
svn remove Person.h 删除文件
svn commit -m "删除了文件" 提交删除
(4)查看版本信息
svn update 更新到最新的版本
svn log 查看版本信息

6.公司常用命令:
svn checkout 服务器地址 —username=账号 —password=密码
svn update 更新到最新的版本
svn commit -m “注释” 将本地的代码提交到服务器
svn add 文件名 在添加静态库的时候需要使用,其他时候不经常使用;

二、新人加入开发
1.(1)向项目经理索要账号密码;
(2)拿到项目文档:需求文档,接口文档;以及效果图;
(3)将服务器已有的内容下载到本地
svn checkout 服务器地址 —username=账号 —password=密码

2.代码冲突
(1)out of date :过期,,本地版本号低于服务器的版本
diff-full:在命令行中展示所有的不同
edit:在命令行中编辑冲突 (一般不用)
mine-conflict:用本地代码来覆盖服务器的代码
their-conflict:用服务器的代码来覆盖我的代码
(2)在公司中解决冲突时候一般使用:
postpone:延迟解决冲突,展示所有的冲突文件,手动解决冲突,在有冲突的文件里面手动解决,然后使用下面一行代码更新;
svn resolved 文件名 :手动解决了哪个冲突
svn commit -m “注释” 将本地的解决冲突后的代码提交到服务器

(3)注意:
尽量在修改文件之前update;
如果修改公共文件,最好跟同事说一声,让别人先不要修改,修改完成之后,让别人更新;

(4)回退本地新增的内容
svn revert person.h:将本地新增的内容(没有提交的服务器),删除

三、图形化界面的使用
1.安装使用cornerstone,使用Xcode进行文件添加和进行忽略操作;
(1)添加一个仓库,添加完仓库后,进行checkOut操作,(注意checkOut时候要选择最新的版本1.7进行),进行初始化,在xcode中添加文件;
(2).在点击提交之后选择commit Changes ,会弹框提示是否忽略不识别的文件,选择忽略ignore;
(3)然后需要在cocoaconer中将要用户数据文件夹选中点击右键删除,删除两个xcuserdata文件夹;
删除以后,选择整个文件夹,点击commit再次进行提交;
(4)然后来到xcode中,进行文件的简单编辑和移动;再次来到cornerstone中会出现两个带问号的xcuserdata文件夹,右键选择进行ignore;
(5)在c中点击update,做一次更新操作;
(6)测试是否修改忽略操作成功,编辑一个文件,使用xcode中的sourceControl中的commit提交,如果现实要上传的也是一个文件,就表示忽略操作成功;
当忽略操作修改完成后,下次修改代码后可以直接使用xcode中的sourceControl中的commit提交;
(7)然后就可以进行开发了

2.需要忽略的文件 :(下面三个文件都保存在xcuserdata中)
(1)xcode会默认记录之前停留的文件,下次打开仍然会停留在这个文件,不需要共享;
(2)xcode会默认记录之前目录的打开情况,不需要共享;
(3)断点信息不需要共享;

3.使用xcode进行多人开发
(1)添加张三的仓库;
(2)选择仓库,点击checkOut,将仓库中的文件下载到本地;
(3)打开xcode进行编辑工作,当新建一个类之后,要提交的话需要同时提交配置(project Setting);如果对其中的文件进行了移动的时候,没有进行修改的话,也需要提交提交配置(project Setting);
(4)使用xcode解决冲突,当两人同时在一行提交了代码时候,就会产生冲突,点击出现红色C的文件来解决冲突;

4.xcode使用SVN进行开发的注意点:
(1)如果使用到静态库时候需要特别注意,必须使用命令行将静态库添加到svn的管理之下;(动态库只能苹果使用,我们使用的都是静态库);
cd 想要到达的文件夹路径; 在命令行中拖拽找到静态库的.a文件的路径;
svn add 静态库名 :添加静态库
svn commit -m “注释” :提交到服务器的库中;

(2)使用storyboard的注意点
当两个人在storyboard中的同样的位置添加了控件时候,后添加的一个人再提交的时候会产生冲突,这时候即便在这里解决了冲突之后,再点击storyboard会发生打不开的情况;
这时候需要右击打开storyboard的源代码,里面可能会发生标签嵌套,将嵌套的标签解决掉,就可以打开了;
如果约束出现冲突,需要修改约束;
(3)注意:在项目中,如果能使用xib就尽量使用xib;如果使用到的storyboard,尽量保证只有一个人在使用;

5.Xcode中使用checkOut
(1)在Xcode中,设置偏好设置,选择Accounts,点击?进行添加仓库;
(2)添加完成SubVersion仓库之后,选择sourceControl,点击CheckOut,选择想要下载的仓库,并保存,就将仓库里的代码下载下来了;

6.公司开发技巧
(1)为了避免冲突,尽量写一些代码就提交到服务器,实时给服务器的代码保持同步;
(2)尽量提前半小时提交代码,如果产生冲突可以有时间处理;

四、目录规范的演示
1. 1> Trunk :主干 目录,当前开发项目的主目录;
目前项目正在开发的版本;
通常进入公司之后在该目录下开发;
2> Tags:标记 目录,通常作为重大版本的备份
存放已经上线的重大版本;
3> :分支 目录,添加非主线功能时候使用;
当发生重大bug或者有新需求时;

2.当程序开发完成后,需要进行备份;
(1)先在cocoaconer中,使用command+R,将仓库中存储的东西刷新一下(因为commit上传后不更新呢的话,cocoaconer中不会现实上传的内容);
(2)cocoaconer中,右键点击文件夹选择tag,设定一个tag名称,选择最新上传的版本,并保存到tags文件夹下;弹框提示输入这个版本实现了什么功能;成功备份到了tags文件夹中;

3.当之前的版本出现bug需要修复时候:
(1)来到tags文件夹中,将保存的文件夹右击选择branches,将文件拿到branches文件夹中,进行bug的修复;
(2)branches文件夹中的文件checkOut到本地,进行程序bug的修复;修复完成后点击commit进行提交;
(3)将修复完的版本备份到tags中:使用command+R,将仓库中存储的东西刷新,并进行重复第2步中的步骤,进行备份;

4.将修复bug后的版本合并到里面;
在正在进行开发的项目中,由于是使用合并之前的版本进行开发的,也会出现相同的bug,所以需要将修复bug后的版本合并到里面;
(1)cocoaconer中点击选择正在项目,点击merge,点击选择更新(将之前commit的操作更新到cocoaconer中);
(2)点击merge form,选择修复bug完成的版本,点击mergeChanges进行合并;
(3)然后将合并之后的文件在Xcode中进行commit,到服务器上;
将有备份后的branches中的文件可以删除

时间: 2024-11-02 01:16:02

源代码管理工具 SVN在开发中的使用的相关文章

源代码管理工具 SVN

基本操作 1. Checkout只需要做一次! 2. 每天下班前:commit"可运行版本" 3. 每天上班前:update前一天所有代码 使用环境 要想利用SVN管理源代码,必须得有2套环境 服务器 1. 用于存储客户端上传的源代码 2. 可以在Windows上安装Visual SVN Server 3. 大部分情况下,公司的开发人员不必亲自搭建SVN服务器 客户端 1. 上传本地的源代码到服务器,或者更新服务器的代码到本地,保持同步 2. 可以在Mac上使用命令行.Versions

源代码管理工具SVN

1.源代码管理工具概述 2_SVN常用指令.hm Checkout把整个项目所有的源代码从服务器下载到本地 Update:将服务器上的代码更新到本地(只会更新被修改的文件) Commit:将本地的修改之后的代码提交至服务器(只提交修改之后的代码) 当提交代码时报错:out  of date : 服务器的文件被别人修改了 解决办法: 讲服务器的文件更新到本地,然后与自己的代码  合并 调试之后在提交 大部分公司使用此种策略 一个人checkout 下载代码之后,服务器会被锁住,禁止其他人操作.直至

源代码管理工具Svn和Git

一.源代码管理工具诞生的原因: 1.无法后悔:做错了一个操作后,没有后悔药可以吃: 注解:在用Xcode编程的时候,我们做了一个代码修改,忽然Xcode崩了,或者是不小心关掉了.那么刚才所写的好代码就丢失了,即使Command+Z也无法后退 2.版本备份:费空间.费时间: 如果我们为了防止写完一个模块或者一个功能的代码后Xcode因不小心关闭而丢失代码,就去做版本备份,那写完一个项目,岂不是备份了成百上千份?耗时耗空间! 3.版本混乱:因版本备份过多造成混乱,难于找回正确的想要的版本: 备份过多

iOS 源代码管理工具之SVN

源代码管理工具之SVN 源代码管理工具SVN是一款非常强大的源代码管理工具,现在国内70%-90%的公司都在使用SVN来管理源代码,下面就让小编给大家着重介绍一下SVN的使用,SVN的使用主要分为下面几块. SVN的使用环境 服务器端的配置 客户端软件的使用 客户端图形界面工具的使用 SVN的目录规范及使用实例 1.SVN的使用环境. 要想使用SVN管理源代码,必须得有两套环境 服务器端 可以用于存储客户端上传的源代码 可以在Windows上安装Visual SVN Server 大部分情况下,

源代码管理工具之SVN

源代码管理工具SVN是一款非常强大的源代码管理工具,现在国内70%-90%的公司都在使用SVN来管理源代码,下面就让小编给大家着重介绍一下SVN的使用,SVN的使用主要分为下面几块. SVN的使用环境 服务器端的配置 客户端软件的使用 客户端图形界面工具的使用 SVN的目录规范及使用实例 1.SVN的使用环境. 要想使用SVN管理源代码,必须得有两套环境 服务器端 可以用于存储客户端上传的源代码 可以在Windows上安装Visual SVN Server 大部分情况下,公司的开发人员不必亲自搭

源代码管理工具简介

#一. 源代码管理工具简介* 有必要给大家的介绍一下,如果不说的话,大家都不知道它是干嘛的,首先我们要逐渐的建立器一个感受,对源代码管理工具的一个感觉. * 为什么会出现源代码管理工具? * 首先它得有一定的功能,对不对?任何的发明创造,都是为了解决人类的问题的,对不对?甚至一些语法规则的发明也是为了解决一定的问题的,对不对? * 我随便举个例子啊,举个简单的例子同学们理解一下,比如说像以前我们为了存储一个整形数据,是不是发明了一个叫int 类型的.后来发现不太靠谱,因为他只能存一个整数,所以就

源代码管理工具

为什么会出现源代码管理工具? 为了解决在软件开发过程中,由源代码引发的各种蛋疼.繁琐的问题 源代码会引发哪些问题? 无法后悔:做错了一个操作后,没有后悔药可以吃 版本备份:费空间.费时间 版本混乱:因版本备份过多造成混乱,难于找回正确的想要的版本 代码冲突:多人操作同一个文件(团队开发中的常见问题) 权限控制:无法对源代码进行精确的权限控制 追究责任:出现了严重的BUG,无法得知是谁干的,容易耍赖 … … 源代码管理工具就是为了解决上述问题而生的!此乃软件开发的一大福音! CVS 开启版本控制之

源代码管理工具-GIT

源代码管理工具-GIT 一. git 概述 1. git 简介? 什么是git? > git是一款开源的分布式版本控制工具 > 在世界上所有的分布式版本控制工具中,git是最快.最简单.最流行的 git的起源? > 作者是Linux之父:Linus Benedict Torvalds > 当初开发git仅仅是为了辅助Linux内核的开发(管理源代码) git的现状? > 在国外已经非常普及,国内并未普及(在慢慢普及) > 越来越多的开源项目已经转移到git 2. 常见的

h5牛牛平台透视源代码管理工具概述

Q1446595067官网:h5.haozibbs.com或http:\www.aqbaa.cn一. 源代码管理工具概述 源代码管理工具的作用? 能追踪一个项目从诞生一直到定案的过程记录一个项目的所有内容变化,无限制返回查看特定版本的修订情况 常见的源代码管理工具有哪些? CVS 开启版本控制之门 1990年诞生,"远古时代"的主流源代码管理工具SVN 全称是Subversion,集中式版本控制之王者 是CVS的接班人,速度比CVS快,功能比CVS多且强大 在国内软件企业中使用最为普遍