源代码管理工具SVN是一款非常强大的源代码管理工具,现在国内70%-90%的公司都在使用SVN来管理源代码,下面就让小编给大家着重介绍一下SVN的使用,SVN的使用主要分为下面几块。
- SVN的使用环境
- 服务器端的配置
- 客户端软件的使用
- 客户端图形界面工具的使用
- SVN的目录规范及使用实例
1.SVN的使用环境。
要想使用SVN管理源代码,必须得有两套环境
-
可以用于存储客户端上传的源代码
-
可以在Windows上安装Visual SVN Server
-
大部分情况下,公司的开发人员不必亲自搭建SVN服务器,基本上你进入公司之后公司会把SVN服务器的地址和你的用户名和密码告诉你的,当然他要是对你不放心的话,可能会考察你几天,然后才决定是否给你。
-
上传本地的源代码到服务器,或者更新服务器的代码到本地,保持同步
-
可以在Mac上使用命令行、Versions、Cornerstone-图形化操作软件、Xcode
-
开发人员就属于客户端这个角色
2.服务器端的配置
服务器端在window电脑上安装Visual SVN Server- 下载地址http://www.visualsvn.com/server/download/
- 安装Visual SVN Server
- 创建代码仓库
- 点击左侧第一个黄色文件夹,然后点击新建,输入名字,下一步,这样就创建好了一个空的仓库。
- 点击左侧第二个黄色文件夹,点击右键,新建用户,然后设置用户名和密码。设置完之后点击OK提交。
- 点击你建立的仓库,右键点击,选择properties选项。
- 点击properties之后会出来一个界面,选中你刚才创建的用户,然后点击ADD。
- 选中你建立的仓库,然后右键点击copy URL,点击之后在我们的剪贴板就可以得到仓库的URL了,
- 打开你电脑的浏览器 ,输入刚才得到的URL,然后需要输入用户名和密码,输入之后就可以进入仓库了。
3.SVN客户端的配置
svn checkout https://192.168.1.106/svn/Weibo/ /Users/Documents/workspace
https://192.168.1.106代表的是:代码仓库的远程地址-这个地址就是你刚才那个电脑的IP地址
/svn/Weibo/ /Users/Documents/workspace代表的是:将代码下载到本地的哪个路径
- svn info :查看文件的详细信息
- svn diff :查看不同版本的区别
- svn log :查看日志信息
-
svn list :列出版本库下的文件和目录列表
- svn status :查看文件状态(简写svn st)
- svn help :获取帮助信息(比如svn help ci)
-
svn lock :加锁
- svn unlock :解锁
- svn commit -m "注释" [PATH]
- 提交一个新建的文件到服务器,需要2个步骤
- 添加新建的文件到本地的版本控制库中:svn add
-
提交刚才的添加操作到服务器:svn commit
-
如果直接提交一个没有添加到本地版本控制库中的文件,会报下面的错误
lis not a working copy
- 删除服务器上的某个文件,需要做2个步骤
-
将文件从本地的版本控制库中移除:svn delete 、svn remove
-
提交刚才的删除操作到服务器:svn commit
-
将文件从本地的版本控制库中移除 svn delete PATH
-
将服务器的最新代码更新到本地 svn update [PATH]
示例
svn update [所要更新的文件路径]
n将文件恢复至某个版本
svn update -r 版本号 [PATH]
4.图形界面工具
- 在Mac上,也可以利用SVN图形界面工具来管理源代码,可以大大减小使用命令行的痛苦(有些操作使用命令行会比较繁琐,比如解决冲突)Cornerstone / Versions / Xcode大部分工作在Xcode中都可以完成
- Xcode对SVN的支持并不是非常友好,尤其新建文件夹时,在Xcode中非常容易出问题
- Xcode中,最好不要多人同时修改一个Storyboard!
- MAC里下载Cornerstone添加管理仓库
5.目录规范
- branches:分支目录,添加非主线功能时使用,开发测试之后,可以合并到主干项目中
6.常见问题总结
- 去到公司的第一天,下载公司的代码到电脑上 svn checkout
7.使用SVN我们应该
- 经常更新:降低冲突的可能性
-
提交前需在本机测试通过:降低将问题代码传到版本库
-
提交时一定写备注(注释):方便其他员工查看和自己以后回顾
- 对于不需要提交的文件不要提交到版本库
- 每次修改之前最好先更新
- 每天下班前提交当天运行通过的代码
-
每天上班第一件事情更新前一天的代码