iOS开发基础49-SVN介绍二
1. 源代码管理工具概述
源代码管理工具的作用
源代码管理工具是软件开发过程中不可或缺的组件,具有以下几个重要作用:
- 版本追踪:能追踪一个项目从诞生到定案的全过程。
- 变更记录:记录项目所有内容的变化,方便以后查阅和审计。
- 协作开发:在团队开发中,确保每个成员的更改都能被追踪和管理,避免代码冲突。
使用源代码管理工具的必要性
- 团队开发:在团队开发中,使用源代码管理工具是强制性的,确保团队成员彼此协作、版本一致。
- 单人开发:即便是单人开发,也强烈建议使用源代码管理工具,便于版本回退和历史查看。
使用简单且高效
- 低成本:使用简单,几乎不会增加开发负担,但能带来显著的方便性和安全性。
- 无害:对现有工作没有任何负面影响。
- 专业要求:是合格的软件开发人员必须掌握的技术。
2. SVN 介绍
SVN 基本概念
SVN 是一种集中式源代码管理工具,包含以下几个核心概念:
- Repository:代码仓库,用于保存所有版本的代码。
- Server:服务器,存储所有的代码仓库。
- Client:客户端,保存当前用户工作目录的副本。
- 用户名和密码:访问代码仓库需要通过用户名和密码来区分不同用户进行的修改。
SVN 常见操作
- checkout:将服务器上的代码仓库检出到本地。
- update:从服务器上下载其他用户的修改,更新到本地。
- commit:将本地修改提交到服务器上的代码仓库。
3. SVN 服务器安装 - Visual SVN Server
Visual SVN Server 的特点
- 操作系统:运行在 Windows 操作系统上,集成了 Subversion 和 Apache。
- 安装便捷:提供简单易用的图形化界面,安装和配置非常方便。
- 下载地址:Visual SVN Server
安装步骤
- 安装程序目录与代码仓库目录:
- 设置程序及代码仓库的安装目录。
- 添加代码仓库:
- 创建一个新的代码仓库,例如
weibo
。
- 创建一个新的代码仓库,例如
- 配置用户:
- 添加用户和设定密码,例如 manager、zhangsan、lisi。
- 群组和权限设置:
- 创建用户群组并分配代码仓库的访问权限。
- 协议选择:
- HTTP 或 HTTPS 协议,以便安全访问代码仓库。
使用浏览器访问代码仓库
可以通过浏览器访问代码仓库,如果使用 HTTPS 协议,浏览器会显示 SSL 证书的验证信息。
4. SVN 操作指南
显示隐藏文件夹
- 显示隐藏文件:
$ defaults write com.apple.finder AppleShowAllFiles Yes && killall Finder
- 不显示隐藏文件:
$ defaults write com.apple.finder AppleShowAllFiles No && killall Finder
常用命令行准备
熟悉命令行操作可以帮助更好地理解图形工具的使用。常用命令如下:
- 查看帮助信息:
$ svn help $ svn help 子命令
UNIX 常用命令
- cd:改变工作目录。
- pwd:输出当前工作目录的绝对路径。
- ls:查看文件。
$ ls $ ls -a $ ls -l $ ls -la
- touch:创建新文件或更改文件的访问和修改时间。
$ touch test.txt
- cat:连续查看文件内容。
- more:分页查看文件内容。
5. 项目搭建和团队成员加入
服务器文件下载到本地
- 切换工作目录:
$ cd 经理的工作目录
- 检出代码仓库:
$ svn co http://192.168.1.103/svn/weibo --username=manager --password=manager
添加和提交文件
- 创建文件:
$ touch main.c $ open main.c
- 提交文件:
$ svn add main.c $ svn ci -m "添加了main.c文件"
新成员加入
- 张三:
$ svn co http://10.0.1.15/svn/weibo --username=zhangsan --password=zhangsan
- 李四:
$ svn co http://10.0.1.15/svn/weibo --username=lisi --password=lisi
添加和删除文件
- 添加文件:
$ touch Person.h Person.m $ open Person.h $ open Person.m $ svn add Person.* $ svn ci -m "添加了Person类"
- 删除文件:
$ svn rm Person.h $ svn ci -m "删除了文件"
撤销和恢复修改
- 撤销修改:
$ svn revert Person.m
- 恢复到之前的某个版本:
$ svn update -r 5 $ svn up
解决冲突
冲突解决选项:
- p:对比冲突。
- mc:使用我的版本。
- tc:使用对方的版本。
6. 文件的状态
使用 svn st
显示文件状态,其中包括:
- ' ':没有修改。
- 'A':被添加到本地代码库。
- 'C':冲突。
- 'D':被删除。
- 'I':被忽略。
- 'M':被修改。
- 'R':被替换。
- 'X':外部定义创建的版本目录。
- '?':文件没有被添加到本地版本库内。
- '!':文件丢失或者不完整。
- '~':受控文件被其他文件阻隔。
7. 使用图形化界面
安装 CornerStone
CornerStone 是一个强大的 SVN 图形客户端,安装后可以对 SVN 进行图形化操作。
操作步骤
- 添加远程代码仓库。
- 导出代码库到本地。
- 在本地目录下使用 Xcode 新建项目。
- 注意:不要勾选 Git,两套源代码管理同时存在会发生冲突。
- 提交到代码仓库。
- 其他用户操作。
忽略不需要上传的文件
可以在 SVN 设置中忽略指定不需要上传到版本库的文件类型或目录。
目录规范
- Trunk:当前开发的主要分支。
- Tags:存放已上线的重大版本。
- Branches:用于重大 bug 修复或新需求开发。
通过上述内容,开发者能更好地理解和应用 SVN 进行高效的源代码管理,提升团队合作效率和项目管理质量。### 目录规范
- Trunk:当前开发的主要分支。
- Tags:存放已上线的重大版本。
- Branches:用于重大bug修复或新需求开发。
将来的你会感谢今天如此努力的你!
版权声明:本文为博主原创文章,未经博主允许不得转载。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· NetPad:一个.NET开源、跨平台的C#编辑器
· PowerShell开发游戏 · 打蜜蜂
· 凌晨三点救火实录:Java内存泄漏的七个神坑,你至少踩过三个!