SVN终端演练(个人开发\多人开发)

SVN终端演练(个人开发)

### 1. 命令格式

命令行格式:

svn <subcommand> [options] [args]

svn 子命令 [选项] [参数]

其中中括号里面的内容可以省略

### 2. 必学命令

svn [子命令] --help

svn help [子命令]

### 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终端演练(多人开发)

0. 准备工作

熊大和熊二,分别通过
        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
使用他人的(服务器), 如果代码产生冲突, 则以服务器代码为准
  

时间: 2024-08-05 11:17:34

SVN终端演练(个人开发\多人开发)的相关文章

多人开发Xcode工程冲突,打不开解决办法

在公司多人协作开发,相信好多程序员都遇到非常忧伤的问题,就是工程打不开,这样就无从下手,好多程序怨只能再从代码服务器上下载一份新的代码,今天军哥教你几个小技巧,让你的bigger瞬间提升一个档次 在公司经常遇到这种非常忧伤的问题 出现这种问题是因为多人开发中,同时修改了工程文件(小码哥彩票.xcodeproj),或者storyboard,xib,Assets.xcassets,文件,就是系统工程配置文件,导致工程打不开 解决方案 第一种解决方案 - 图形化界面 1.选中工程文件->右键显示包内容

Java开发牛人十大必备网站

以下是我收集的Java开发牛人必备的网站.这些网站可以提供信息,以及一些很棒的讲座, 还能解答一般问题.面试问题等.质量是衡量一个网站的关键因素,我个人认为这些网站质量都很好.接下来,我会跟大家分享我是如何使用这些网站学习和娱乐的.或许你会认为有些网站适合任何水平的开发者,但是我认为:对于Java开发牛人来说,网站的好坏取决于如何使用它们. 1.Stackoverflow Stackoverflow.com 可能是编程界中最流行的网站了,该网站有成千上万个好问题和答案.学习API或者编程语言,通

androidstudio如何用github多人开发

一.由于很久没有碰过github,这是本人初级开发者中经常忘记github其实有很多很好的例子和源码,今天被叫到配置好github等开发环境时候突然就忘记了如何用github多人开发,还是要脸厚着去百度(大写的尴尬) 二.首先我们利用github作为代码库,有两种方法可以创建代码库 一定要配置好git环境和创建好github账号 检测git环境配置 检测github账号是否能登录 成功就会 (1)在github中直接创建代码库,再在Androidstudio中需要把代码提交到仓库的时候就会弹出一

PDA手持终端集成一体打印 二次开发

PDA手持终端集成一体打印 二次开发支持 VS2008或VS2005开发工具 c#或C++开发语言 Mobile6.5,支持GSM通话,GPRS,EDGE网络;内置wifi,蓝牙,gps商场单品管理小票打印等仓储以及物流管理终端 POS,移动POS机,打印PDA,打印掌上电脑,小票打印,小票打印机 手持POS打印智能终端采用Mobilie6.5操作系统,GSM/GPRS电话功能,WIFI,BT,14443AB RFID读写模块,远距离红光条码扫描模组,200万摄像头,2英寸热敏打印头.为一款工业

多人开发之经验总结-开发规范制定之必要性

最近开发 GSOAP 项目.因为是以库的形式提供,很多程序要调用它,涉及到几个开发者的共同参与. 类库是在 VS 平台下开发.一名开发者在arm程序里调用时,必须提供给他源码.当程序调试好之后,功能没有显现出来.很费劲的弄了一天半.发现是他为了调试成功,把.nsmap.h 头文件给屏蔽了.如果是以类库提供,不会出现此问题,因为类库他没办法修改. 即便是提供类库,也不能保证不出问题.一名开发者在VS平台调用此类库,也出现功能没有展现的问题.这个问题费了两天的时间,发现是客户端ping不同服务器端,

初学开发的人应该知道的10件事情

刚开始接触开发,你也许会有些迷茫,不知道从哪里开始,这个领域实在是有很多知识要学习.比如你可能会问自己"我应该学哪种编程语言?""我是否在学习后端的时候需要去了解下前端?"等等.以下 10 个建议希望能帮助你尽早做出选择. 1. 确定想掌握的技能 作为一个初学开发的人,你真正需要的是只专注于某一方面.了解很多语言确实有用,但精通其中一种才是你的优势所在.虽然精通很多语言也并非不可 能,但对初学者来说,这是需要时间的.因此,你需要做的是集中精力学习一种技能,并努力成为

为什么软件开发,人多,事少,还会工作量大?

本文所要分享的是软件开发过程中,亲身经历过的“怪现象”.为什么说怪呢,人多力量大,似乎才符合常理,但是往往在软件项目开展的过程中会出现人多.事少.工作量大的情况,这跟我们以往的认知大相径庭. 首先,要解释下标题的意思.人多,指的是同一个项目团队.同一个小组或者同一个部门的范围内:事少, 指的是做出的效果,真正的产出少:工作量大,指的是,工作时间长,工作忙,实际的投入大. 其实,人多事少工作量大,说白了就是效率低,而影响效率的,原因千万种,有人员问题.沟通问题.流程问题.管理问题.技术问题,下面零

防止和解决多人开发冲突问题

当我们在进行多人开发的时候,冲突问题是一定会遇到的,如果不想办法解决,那是真的很头疼,加班不为了别的,就为了解决冲突,就问你怕不怕!! 原因:线上版本的代码和本地分支的代码不一致,所以就会导致冲突,以下办法为本人开发经验,百试百灵. 防止冲突问题的出现: 先完成本地开发,我们可以这样做: 1.新建分支(git checkout -b feature-xxx)这个xxx就是功能名字 2.添加代码监听(git add -a)add后面的命令,可以自己上网查,这里就不细说了 3.提交代码到暂缓区(gi

从svn上检出威尼斯人网站开发多模块maven项目

一.SVN上Maven多威尼斯人网站开发模块项目结构 haozbbs.comQ1446595067 使用eclipse导入SVN上的Maven多模块项目 Maven多模块项目所在SVN目录 二.eclipse通过SVN导入到工作空间 工作空间位于F:/HPCWorkspace 2.1 File->Import,选择从SVN检出项目下载 2.2 选择/新建SVN资源库位置 如果资源库还没创建好,选择创建新的资源库位置,如果已经创建好资源库了,那么选择使用现有的资源库位置下载 不存在的话新建 存在的