p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 18.0px "PingFang SC" }
p.p2 { margin: 0.0px 0.0px 0.0px 0.0px; font: 18.0px "PingFang SC"; min-height: 25.0px }
p.p3 { margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px "PingFang SC"; color: #ed719e }
p.p4 { margin: 0.0px 0.0px 0.0px 0.0px; font: 18.0px "PingFang SC"; color: #000000 }
p.p5 { margin: 0.0px 0.0px 0.0px 0.0px; font: 18.0px "PingFang SC"; color: #000000; min-height: 25.0px }
一、源代码管理工具的种类:
1、CVS:始于90年,版本控制的开始工具鼻祖
2、SVN(Subversion):集中式的版本管理控制工具
3、GIT:分布式的版本管理控制工具
二、SVN的基本操作:
1、登录SVN服务器,使用账号和密码
2、从SVN服务器代码仓库代码下载到电脑本地:
checkout:下载所有文件到本地
3、将自己写的代码提交到SVN服务器:
commit:只提交修改之后的文件
4、如果其他人想看自己的代码,可以从SVN服务器获取最新的代码:
update:只会更新被修改的文件
5、基本策略(SVN,CVS):
拷贝(下载代码)-修改(修改代码)-合并(合并代码)
6、其它策略(类似微软的VSS,不能进行并行开发):
锁定(下载代码,锁住服务器)-修改(修改代码)-解锁(解锁后,其它人才可以从服务器下载代码)
注意事项:每天上班之前,checkout,只需要做一次;每天下班之前,commit提交一次“可运行的版本”;想要往服务器提交代码,必须要保证本地的代码和服务器的一致,出现“out of date”,说明服务器的代码已经被别人修改过了,需要update一下。
其它:
1、经常更新
2、提交前需要在本机测试通过
3、提交时一定写备注(注释)
4、对于不需要提交的文件不要提交到版本库
5、每次修改之前最好更新
6、每天下班之前提交当天运行通过的代码
7、每天上班第一件事情更新前一天的代码
三、服务器端的安装配置:
1、服务器(存储客户端上传的源代码)
使用工具:Visual SVN Server(只适用于Windows电脑)
下载地址:
https://www.visualsvn.com/server/download/
2、客户端(上传本地的源代码到服务器,或者更新服务器的代码到本地,保持同步)
使用工具:命定行,Versins,Cornerstone,Xcode
四、客户端软件使用:
1、使用命定行工具,拷贝服务器文件夹到电脑本地
cd /Users/Desktop/SvnFolder/manager
svn checkout http://192.168.15.155/svn/projectName
cd /Users/Desktop/SvnFolder/zhangsan
svn checkout http://192.168.15.155/svn/projectName
cd /Users/Desktop/SvnFolder/lisi
svn checkout http://192.168.15.155/svn/projectName
cd /Users/Desktop/SvnFolder/wangwu
svn checkout http://192.168.15.155/svn/projectName
2、提交代码
cd /Users/Desktop/SvnFolder/manager/projectName
touch main.c
open main.c
svn state(查看状态)
svn add main.c
svn commit main.c -m “初始化项目”
cd /Users/Desktop/SvnFolder/zhangsan/projectName
svn update
cd /Users/Desktop/SvnFolder/lisi/projectName
svn update
cd /Users/Desktop/SvnFolder/wangwu/projectName
svn update
3、执行返回到下载的版本号
cd /Users/Desktop/SvnFolder/manager
cd projectName/
svn revert main.c
4、执行返回到指定的版本号
svn update -r 3
5、执行查看所有的版本号
svn log mian.c
6、平时使用SVN的时候,会遇到两个常见的问题
a.超时:先更新再提交,只有本地的版本号大于等于服务器的版本号,才能提交,否则会出现“out of date”问题。
b.冲突:conflict discovers in(提示我们如何解决问题)
三种情况:
第一种、mine-conflict:代表用我们的代码替换服务器的代码,本地代码只保存我们的。
第二种、theirs-conflict:代表用服务器的代码替换我们的代码,本地代码只保存服务器的。
第三种、postpone:自己手动解决,本地文件中会同时保留服务器代码和本地代码。
其它注意事项:
.svn这个隐藏目录记录着非常关键的信息,不要去修改、删除这个隐藏目录和里面的文件,否则将会导致本地的工作副本被破坏,无法再进行操作
五、Xcode管理SVN步骤:
1、在Cornerstone中添加服务器manager
2、创建Xcode工程
3、选中服务器manager,点import(把工程导入到SVN服务器)
4、填写日志信息
5、Cornerstone中点击checkout下载代码到本地manager文件夹
6、指定对应的开发人员,比如:peter,通过Xcode的checkout下载代码
7、Xcode—>preferences—>accounts—>add reponsity—>填写SVN地址—>输入账户和密码
8、Xcode—>SourceControl—>checkout—>repository(选择没有端口的地址)—>next—>保存工程位置
9、Xcode—>添加.m文件中的代码—>Commit提交(userdata是用户缓存目录,断点信息,布局信息和打开文件信息)
10、Xcode—>SourceControl—>Discard All Changes(没有提交之前反悔)
11、Xcode—>SourceControl—>update出现冲突—>点击?问号—>四项选择(服务器在上我的代码在下面,使用我的代码,使用服务器的代码,我的在上服务器的代码在下面)—>Commit提交
12、查看整个项目记录Xcode—>SourceControl—>History,查看单个文件记录Xcode—>Version editor—>Log
六、SVN目录规范:
trunk:主干,开发项目的主目录
branches:分支,分支目录,非主线功能,发现发布版本后有BUG,拷贝一份到分支,然后在分支解决BUG,测试之后,可以合并到主干
tag:标识符,标记目录,重大版本的备份
操作流程:主干发布1.0版本—>并右键点击trunk文件夹,标记备份1.0版本—>发现1.0版本有BUG—>右键点击1.0文件夹,拷贝1.0版本到分支—>然后选择分支,工程中修改1.0版本BUG—>经理验证完毕,发布1.1版本—>并右键点击1.1版本,标记备份1.1版本—>然后合并1.1分支到主干
注意事项:合并主干版本和修复的分支版本不成功,记住一定要删除userdata文件。如果下次出来显示?击右键,ignore忽略文件