源代码管理工具之SVN
源代码管理工具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客户端命令
- 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工作:先更新,再提交!
- Xcode中,最好不要多人同时修改一个Storyboard!
- MAC里下载Cornerstone添加管理仓库
5.目录规范
- 正规项目的SVN目录结构一般有3个文件夹
- trunk:主干,当前开发项目的主目录
- branches:分支目录,添加非主线功能时使用,开发测试之后,可以合并到主干项目中
- tags:标记目录,通常作为重大版本的备份
6.常见问题总结
- 去到公司的第一天,下载公司的代码到电脑上 svn checkout
- 修改了某个早已存在的旧文件,然后提交到服务器 svn commit
- 提交一个自己新建的文件到服务器
- svn add à svn commit
- 删除一个早已存在的旧文件,然后同步到服务器上 svn delete à svn commit
- 将其他同事提交的新代码更新到自己电脑上 svn update
- 不小心写错了很多东西,想撤销所写的东西(还未把修改提交到服务器) svn revert
- 不小心删错了文件,想把文件恢复回来(还未把删除提交到服务器) svn revert
- 不小心写错了很多东西,想撤销所写的东西(已经把修改提交到服务器)svn update -r 版本号
- 不小心删错了文件,想把文件恢复回来(已经把删除提交到服务器)svn update -r 版本号
- svn这个隐藏目录记录着非常关键的信息 千万不要手工修改或删除这个 .svn隐藏目录和里面的文件! 否则将会导致本地的工作副本被破坏,无法再进行操作
7.使用SVN我们应该
- 经常更新:降低冲突的可能性
- 提交前需在本机测试通过:降低将问题代码传到版本库
- 提交时一定写备注(注释):方便其他员工查看和自己以后回顾
- 对于不需要提交的文件不要提交到版本库
- 每次修改之前最好先更新
- 每天下班前提交当天运行通过的代码
- 每天上班第一件事情更新前一天的代码
源代码管理工具之SVN的更多相关文章
- iOS 源代码管理工具之SVN
源代码管理工具之SVN 源代码管理工具SVN是一款非常强大的源代码管理工具,现在国内70%-90%的公司都在使用SVN来管理源代码,下面就让小编给大家着重介绍一下SVN的使用,SVN的使用主要分为下面 ...
- 源代码管理工具(1)——SVN(1)——SVN 的使用新手指南,具体到步骤详细介绍----TortoiseSVN
一.客户端的使用: TortoiseSVN(下载地址:https://pan.baidu.com/s/14cAEV5ZfMA9mLlQAb4oznw 这里有包含中文版的语言包). 1.先下载安装(这个 ...
- 源代码管理工具(2)——SVN(2)——第一次用SVN遇到的问题
今天因为项目的需要第一次使用了svn来托管项目,第一使用svn遇到了几个问题. 这个安装的过程很简单,不再赘述.在安装完成之后,相信肯定有一部分第一次用这个的人直接到开始处打开这个软件,这时候就会弹出 ...
- 源代码管理工具(下)-SVN目录结构
内容中包含 base64string 图片造成字符过多,拒绝显示
- iOS源代码管理工具
源代码管理工具简介 1.为什么会出现源代码管理工具? 为了解决在软件开发过程中,由源代码引发的各种蛋疼.繁琐的问题 2.源代码管理不当可能会引起的后果? 无法后悔:做错了一个操作后,不能回到之前的操作 ...
- 源代码管理工具(上)-SVN基本使用
------------------------------------------------------SVN简介和搭建 ------------------------------------- ...
- iOS核心笔记—源代码管理工具-SVN
源代码管理工具-SVN 一. 源代码管理工具概述 1. 源代码管理工具的作用? > 能追踪一个项目从诞生一直到定案的过程 > 记录一个项目的所有内容变化,无限制返回 > 查看特定版本 ...
- IOS SVN源代码管理工具使用
01. 源代码管理工具概述(PPT)===================================================* 源代码管理工具的作用:# 能追踪一个项目从诞生一直到 ...
- 源代码管理工具SVN
1.源代码管理工具概述 2_SVN常用指令.hm Checkout把整个项目所有的源代码从服务器下载到本地 Update:将服务器上的代码更新到本地(只会更新被修改的文件) Commit:将本地的修改 ...
随机推荐
- Restore Volume 操作 - 每天5分钟玩转 OpenStack(60)
前面我们 backup 了 voluem,今天我们将讨论如何 restore volume. restore 的过程其实很简单,两步走: 在存储节点上创建一个空白 volume. 将 backup 的 ...
- EntityFramework 外键值映射
如果在 EF OnModelCreating 中配置了实体外键映射,也就是 SQL Server 中的 ForeignKey,那么我们在添加实体的时候,主实体的主键值会自动映射到子实体的外键值,并且这 ...
- 【记录】JS 获取 URL 中文参数编码
比如 URL:http://www.xxxx.com/中文参数 这个在 js 获取"中文参数"的时候会出现乱码. 解决方法:decodeURIComponent(获取的中文参数);
- 拨乱反正:DDD 回归具体的业务场景,Domain Model 再再重新设计
首先,把最真挚的情感送与梅西,加油! 写在前面 阅读目录: 重申业务场景 Domain Model 设计 后记 上一篇<设计窘境:来自 Repository 的一丝线索,Domain Model ...
- CSS3动画几个平时没注意的属性
一.timing-function: steps() 一开始在使用CSS3的时候并没有太注意这个timing-function,只是注意到自定义贝塞尔曲线. 1)一个项目中的实例 先来看看左边加了st ...
- Word基础
1.页面设置 默认大小A4,长宽比0.618 页面布局 2.字体设置 选择要设置的字体->右键->字体 3.选择性粘贴 4.段落设置 选择文字->右键->段落 5.表格 =SU ...
- 软件工程 Android小游戏 猜拳大战
一.前言 最近学校举办的大学生程序设计竞赛,自己利用课余时间写了一个小游戏,最近一直在忙这个写这个小游戏,参加比赛,最终是老师说自己写的简单,可以做的更复杂的点的.加油 二.内容简介 自己玩过Andr ...
- Electron Angular 开发小记
一介绍 electron分为主进程和渲染进程,主进程负责和原生交互,控制窗口等. 渲染进程就是普通网页.主进程和渲染进程可以通过ipcMain(主进程使用)及ipcRenderer(渲染进程用)通信 ...
- 关于WEB Service&WCF&WebApi实现身份验证之WebApi篇
之前先后总结并发表了关于WEB Service.WCF身份验证相关文章,如下: 关于WEB Service&WCF&WebApi实现身份验证之WEB Service篇. 关于WEB S ...
- 7.2 数据注解属性--TimeStamp特性【Code-First 系列】
TimeStamp特性可以应用到领域类中,只有一个字节数组的属性上面,这个特性,给列设定的是tiemStamp类型.在并发的检查中,Code-First会自动使用这个TimeStamp类型的字段. 下 ...