您的位置:首页 > 编程语言

源代码管理工具 一一 SVN-服务器搭建、多人开发基本操作

2018-01-13 20:30 645 查看




一、使用环境

要想利用SVN管理源代码,必须得有两套环境:服务器和客户端

服务器: 

-用于存储客户端上传的源代码

- Mac已经自带了SVN服务器

-大部分情况下,开发人员不必亲自搭建SVN服务器

客户端:

-上传本地的源代码到服务器,或者更新服务器的代码到本地,保持同步

-
可以在Mac上使用命令行、Cornerstone、Xcode

-我们要做的就属于客户端这个角色

二、配置SVN服务器

1. 因为Mac已经自带了svn服务器,我们需要配置一下,不需要搭建,打开终端,创建一个mycode仓库,输入指令(注意:路径在哪都可以)

svnadmin create /Users/apple/svn/mycode


注意: 其中apple,svn,code都是我们自己创建的目录.执行成功后,会发现mycode目录下出现了下面的结构:



2:  配置svn的用户权限

主要修改/svn/mycode/conf目录下的三个文件:authz,
passwd,svnserve.conf

1):首先打开svnserve.conf,将下列配置项前面的#和空格都去掉,再将anon-access
= read改为anon-access = none,这样进制匿名访问,需要账号和密码才可以访问.

2):打开passwd,在[users]下面添加账号和密码.



账号是zy,密码是123

账号是cy,密码是456

3):打开authz,配置用户组合权限

我们可以将在 passwd
里添加的用户分配到不同的用户组里,以后的话,就可以对不同用户组设置不同的权限,没有必要对每个用户进行单独设置权限。



3. 配置完之后,启动SVN服务
svnserve -d -r /Users/apple/svn

如果没有任何输出,则启动成功.我们可以在活动监视器中搜索svn,此进程已经存在了

三、使用svn客户端功能

前提: 由于没有多台电脑进行演示,在桌面创建一个文件夹为SVN演练,并且在文件夹内部创建二个文件夹,一个为经理的文件夹,一个为朝阳,每个文件夹代表一台电脑,目前先让这两个人进行多人开发.



1. 首先项目经理初始化项目.

在项目经理的目录下:
创建main.m文件,可以通过命令行touch main.m创建



2. 将项目经理中的项目上传到服务器(第一次初始化导入)在终端中输入

svn import /Users/sunny/Desktop/SVN演练/项目经理 svn://localhost/mycode/QQ --username=zy --password=123 -m "初始化导入"


PS:将/Users/sunny/Desktop/SVN演练/项目经理中的所有内容,上传到服务器
mycode仓库的 QQ目录下,后面双引号中的"初始化导入"是注释



在终端中显示这样,就代表上传代码到服务器成功,但是在mycode/QQ目录中不会显示任何内容.因为:文件是以加密形式存在的,所以你看不到,只是一堆无序的文件

2. 为了证明我们上传成功,我们把服务器上的代码下载下来.现在让开发人员朝阳开下载项目进行开发 
 首先cd到朝阳文件夹后,使用命令

svn checkout svn://localhost/mycode/QQ --username=zy --password=123





此时就把服务器中的数据给下载到本地了.



3. 朝阳开发完毕后提交项目到服务器

把内容修改后, svn status来查看项目的状态,然后使用下面命令提交项目到服务器

svn commit -m “QQ项目开发完毕”



4. 项目经理下载项目(因为项目经理还没有checkout,只需要checkout一次,以后都update) 首先定位到项目经理路径下

svn checkout svn://localhost/mycode/QQ --username=zy --password=123



5. 项目经理更新项目并提交到服务器

此时开发人员朝阳,不用checkout从服务器下载了,因为此时已经在svn的管理之下,只需要使用

svn update更新项目即可!



6. svn的其他用法,可以在终端输入 svn help 来查看
7. 总结所有文件状态(描述文件被添加/删除/修改)
1.' '没有修改
2.'A'被添加到本地代码仓库
3.'C' 冲突
4.'D' 被删除
5.'I' 被忽略
6.'M' 被修改
7.'R' 被替换
8,'?' 文件没有被添加到本地版本库内,不在SVN的管理之下
9.'!' 文件丢失或者不完整(不识别该文件)
10.'~' 受控文件被其他文件阻隔
11.'U' 本地有文件的情况下更新最新的代码到本地
12.'G' 产生冲突后,更新操作去解决冲突,相当于进行合并
8. main.m不在svn的管理之下,在终端输入以下命令,将mian.m添加到svn的管理之下
svn add main.m
总结:
使用自带的svn服务器
1. 创建一个仓库
svnadmin create /Users/apple/svn/mycode

2. 配置完成后,启动SVN服务
svnserve -d -r /Users/apple/svn

3. 本地上传项目到服务器
svn import /Users/sunny/Desktop/SVN演练/项目经理 svn://localhost/code/QQ --username=zy --password=123 -m "初始化导入"
将 /Users/sunny/Desktop/SVN演练/项目经理 中的所有内容,上传到服务器 mycode 仓库的 QQ 目录下,后面双引号中的"初始化导入"是注释

4. 从服务器上的代码下载到本地
svn checkout svn://localhost/mycode/QQ --username=zy --password=123 /Users/sunny/Desktop/SVN演练/朝阳

5. 项目经理下载项目(因为项目经理还没有checkout,只需要checkout一次,以后都update)
svn checkout svn://localhost/mycode/QQ --username=zy --password=123 /Users/sunny/Desktop/SVN演练/项目经理

6. 当已经checkout后,后面只需要svn update即可

一.所用到的命令行
1.svn checkout 服务器地址 --username=mgr --password=mgr :将服务器所有内容下载到本地,包含.svn
2.svn status:查看在svn工作目录下的所有文件状态
3.svn add:将svn工作目录下面没有被添加到svn管理之下的文件统统添加进去
4.svn commit -m "注释" 文件名 :将指定文件上传到服务器(注释必须写,文件名如果不写,则将在svn本地版本库中所有没上传到服务器的文件或代码上传到服务器)
5.touch main.m:创建main.m文件
二.注意点补充
1.不要删除.svn文件夹,也不要修改里面的内容,否则就不在svn的管理之下了
2.这节内容中,在公司中常用的命令为svn commit,修改或者添加代码都需要上传到服务器
3.svn checkout只需要做一次就可以了
4.svn add:在开发中当使用xcode创建项目后,创建的文件就被直接添加到svn的管理之下了,相当于做了一次svn add 操作.不过svn add命令当在添加静态库到项目中后还是必须用到的(后面的章节会演示)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: