SVN终端演练(个人开发\多人开发)
SVN终端演练(个人开发)
### 2. 必学命令
### 3. 实战演练
1. 项目经理初始化项目,并上传到SVN服务器
方案1:
(1) 创建临时项目(上传后,该文件就可以删除了)
(2) svn import [path] URL --username=用户名 --password=密码 -m "注释"
方案2:
(1) svn checkout URL [path] --username=用户名 --password=密码 : 初始化本地仓库
(2) 创建项目
(3) 使用 svn add 命令将项目所有文件添加到本地版本控制
(4) 使用 svn commit 提交本地项目到远程服务器
2. 程序猿从服务器下载一份完整代码到本地开始开发
svn checkout URL [path] --username=用户名 --password=密码
3. 修改文件提交
(1) 修改文件
(2) 使用svn commit -m "注释" : 提交本地文件到服务器
4. 新建文件提交
(1) 新建文件
(2) 使用 svn add 命令将项目所有文件添加到本地版本控制
(3) 使用 svn commit -m "注释" : 提交本地项目到远程服务器
5. 删除文件提交
*一定不要手动删除文件*
(1) svn remove filename 或者 svn delete filename 从本地版本控制以及对应文件删除
(2) svn commit -m "注释" : 提交本地操作到服务器, 使服务器也删除对应的文件
6. 常用命令补充
1. svn status
查看当前工作空间内, 所有 有变化的文件 的状态
如果执行此命令什么都没输出, 代表本地没有东西要提交
2. svn log
查看当前版本的操作日志(什么人, 什么时间, 做了什么操作)
7. 版本控制中,各个文件状态参考
' ' 没有修改
'A' 被添加到本地代码仓库
'C' 冲突
'D' 被删除(通过svn命令删除的文件)
'I' 被忽略
'M' 被修改
'R' 被替换
‘G’ 被合并
‘U’ 已经更新
‘E’ 已经存在
'X' 外部定义创建的版本目录
'?' 文件没有被添加到本地版本库内
'!' 文件丢失或者不完整(不是通过svn命令删除的文件)
'' 受控文件被其他文件阻隔
8. 注意事项
* 任何本地的操作, 如果想让服务器也做同样的操作, 就直接通过 commit操作 提交到服务器
* 任何向服务器提交的操作,都要加注释 添加 -m参数
熊大和熊二,分别通过
svn checkout URL [path] --username=用户名 --password=密码
命令初始化本地版本控制库
1. 添加文件同步
1. 熊大创建文件并提交到服务器
svn add fileName
svn commit -m "新增文件"
2. 熊二从服务器更新文件
svn update
2. 修改文件同步
1. 熊大修改文件并提交到服务器
svn commit -m "修改文件"
2. 熊二从服务器更新文件
svn update
3. 删除文件同步
1. 熊大删除文件并提交到服务器
svn delete fileName
svn commit -m "删除文件"
2. 熊二从服务器更新文件
svn update
4. 多人合作开发中的常见问题
* 问题一 : 超时
问题描述:
当本地文件版本小于服务器文件版本时, 如果要提交本地文件,就会报 out of date 超时错误
产生原因:
SVN通过版本号管理每一个文件,如果一个文件被修改并提交到服务器,那么服务器上的对应文件版本号会加1, 如果你的版本号小于服务器版本号,就说明,肯定有别人在后来又修改了那个文件
解决方案:
针对于超时问题,对应的解决方案,就是先从服务器更新下最新版本, 保证本地版本号与服务器版本号一致,这是文件可以提交的前提
* 问题二 : 冲突
问题描述:
为了解决超时问题,只能更新.而在更新过程中,如果几个人修改了同一文件的同一行代码,此时就会产生冲突
产生原因:
版本控制器不会那么智能, 去决定应该使用谁的代码作为最终代码,只能将选择权抛给用户,让用户解决
解决方案:
系统提供三种解决方案:
(p) postpone,
延迟处理(待会我自己处理), 如果选择这一种, 会自动生成三个文件供用户参考决策. 并将冲突部分代码块合并到一起. 而一旦解决完毕, 需要执行 svn resloved fileName 来告诉版本控制器已经解决, 然后版本控制器就会自动删除三个参考文件
(mc) mine-conflict
使用我的(本地的), 如果代码产生冲突, 则以本地代码为准
(tc) theirs-conflict
使用他人的(服务器), 如果代码产生冲突, 则以服务器代码为准
SVN终端演练(个人开发\多人开发)的更多相关文章
- SVN终端演练-版本回退
1. 版本回退概念以及原因? 概念: 是指将代码(本地代码或者服务器代码), 回退到之前记录的某一特定版本 原因: 如果代码做错了, 想返回之前某个状态重做;2. 修改了,但未提交的情况下 ...
- 如何使用SVN协调代源代码,多人同步开发
转自linFen原文如何使用SVN协调代源代码,多人同步开发 1.什么是SVN SVN是一种版本管理系统,前身是CVS,是开源软件的基石.即使在沟通充分的情况下,多人维护同一份源代码的一定也会出现混乱 ...
- 多人开发Xcode工程冲突,打不开解决办法
在公司多人协作开发,相信好多程序员都遇到非常忧伤的问题,就是工程打不开,这样就无从下手,好多程序怨只能再从代码服务器上下载一份新的代码,今天军哥教你几个小技巧,让你的bigger瞬间提升一个档次 在公 ...
- Git学习总结(12)——多人开发 Git 分支管理详解
1.前言 在上一篇博客中我们主要讲解了Git 远程仓库,相信大家对远程的Git仓库有一定的了解,嘿嘿.在这一篇博客中我们来在大家讲解一下Git 分支管理,这可以说是Git的又一大特点.下面我们就来学习 ...
- PDA手持终端集成一体打印 二次开发
PDA手持终端集成一体打印 二次开发支持 VS2008或VS2005开发工具 c#或C++开发语言 Mobile6.5,支持GSM通话,GPRS,EDGE网络;内置wifi,蓝牙,gps商场单品管理小 ...
- 转:Java开发牛人十大必备网站
原文来自于:http://www.importnew.com/7980.html 以下是我收集的Java开发牛人必备的网站.这些网站可以提供信息,以及一些很棒的讲座, 还能解答一般问题.面试问题等.质 ...
- 多人开发的git项目如何保持提交日志为一条直线?
多人开发的git项目如何保持提交日志为一条直线? 一.Git的项目的git常用操作 a)Git clone 项目地址 从远程仓库克隆项目到本地 b)Git pull 从当前分支拉取更新代码 c)Git ...
- 解决多人开发时使用window.onload的覆盖问题
通用型小函数:解决多人开发时,同时使用window.onload事件所出现的后面的window.onload函数覆盖前面一个window.onload函数的问题. function addLoadEv ...
- 学Android开发的人可以去的几个网站
学Android开发的人可以去的几个网站 1.<IT蓝豹>Android开源项目分享平台国内非常好的一个Android开发者分享站,分享android所有特效,每天都有最新的Android ...
随机推荐
- robotframework定位页面内Frame框架里的元素
在自动化开发中,会遇到在页面内部点开一个新的页面后,新的页面元素无法定位到的情况,如点击下图的上传图片,弹出的界面无法直接定位到: 遇到这种情况需要查看弹出界面是否是Frame框架页面:打开火狐浏览器 ...
- Linux ns 3. Mnt Namespace 详解
1. 文件系统层次化 对 Linux 系统来说一切皆文件,Linux 使用树形的层次化结构来管理所有的文件对象. 完整的Linux文件系统,是由多种设备.多种文件系统组成的一个混合的树形结构.我们首先 ...
- SpringCloud升级之路2020.0.x版-34.验证重试配置正确性(3)
本系列代码地址:https://github.com/JoJoTec/spring-cloud-parent 我们继续上一节针对我们的重试进行测试 验证针对可重试的方法响应超时异常重试正确 我们可以通 ...
- python 格式化输出详解(占位符:%、format、f表达式)——上篇 理论篇
0 - 占位符介绍 要实现字符串的拼接,使用占位符是的一种高效.常用的方式. 举个例子,下面是不使用占位符的一种写法,直接使用加号拼接字符串 name = "Li hua" age ...
- 菜鸡的Java笔记 数字操作类
数字操作类 Math 类的使用 Random 类的使用 BigInteger 和 BigDecimal 类的使用 Math 是一 ...
- [bzoj1263]整数划分
观察样例,令f(n)表示n拆分的答案,猜想$f(n)=3f(n-3)$,当$n\le 4$时$f(n)=n$取3的原因是因为对于给定的$x+y$,当$4<x+y$,显然有$3^{x+y-3}$最 ...
- [loj3247]Non-Decreasing Subsequences
分治,考虑分治到[l,r]的区间(设$mid=(l+r)/2$),将询问分为两类:1.在左/右区间,直接递归下去:2.跨越中间,那么处理出两个数组:L[i][j]表示左区间在开头第i个位置,以数字j为 ...
- mabatis的mapper文件找不到-ssm升级maven常见问题
手里项目之前是普通ssm的,打算用业余时间升级一把. 1.首先,搭建好maven的ssm项目. 2.配置好jdk,tomcat环境,先启动. 3.启动没问题后将maven目录结构布置好后直接将原有项目 ...
- SpringBoot引入第三方jar的Bean的三种方式
在SpringBoot的大环境下,基本上很少使用之前的xml配置Bean,主要是因为这种方式不好维护而且也不够方便. 因此本篇博文也不再介绍Spring中通过xml来声明bean的使用方式. 一.注解 ...
- BZOJ 3453 - tyvj 1858 XLkxc(插值+推式子)
题面传送门 首先根据我们刚学插值时学的理论知识,\(f(i)\) 是关于 \(i\) 的 \(k+1\) 次多项式.而 \(g(x)\) 是 \(f(x)\) 的前缀和,根据有限微积分那一套理论,\( ...