版本控制

第1章 版本控制的前世和今生

可紊 提交于 2019-11-28 03:11:12
文章目录 1.1 黑暗的史前时代 1.2 CVS —— 开始版本控制大爆发 1.3 SVN —— 集中式版本控制大成者 1.4 Git —— Linus 的第二个伟大作品 1.1 黑暗的史前时代 1.2 CVS —— 开始版本控制大爆发 1.3 SVN —— 集中式版本控制大成者 1.4 Git —— Linus 的第二个伟大作品 来源: https://blog.csdn.net/LuCh1Monster/article/details/99878360

SVN介绍及使用

爷,独闯天下 提交于 2019-11-28 01:15:36
SVN 如何来进行多人协作开发? 在实际工作中,通常是一个小组或者一个团队一起开发同一个项目,不同的人开发不同的功能模块,有一个公共的地方存放项目代码。 如果多个人同时对同一个文件做了修改,比如按照分工,两个人分别做文章模块的增删改查功能,需要操作同一个文件article控制器,如果大家同时完成工作并提交代码,会出现一个代码覆盖的问题。 解决办法: ①合理分配工作任务 ②合理分配工作时间 以上两种思路都有一定的局限性。 今天要学习的svn就是用来解决多人协作开发的问题。 一、SVN概述 1、什么是SVN SVN是Subversion的简称,是一个开放源代码的版本控制系统,是用于多个人共同开发同一个项目,共用资源的目的。 所谓的版本控制,就是记录项目代码文件夹和文件的每一次改动,并为每次改动编上序号,也叫做版本号,用于存储、追踪文件夹和文件的修改历史。 通过版本控制软件,我们可以对项目代码的修改历史进行查看,或者直接把代码恢复到以前的一个版本代码。 2、同类型产品 vss版本控制软件:visual source safe,微软公司开发的基于Windows平台的版本控制软件,入门简单,微软不再对VSS提供技术支持。 cvs版本控制软件:出现比较早的版本控制软件,由于稳定性不是很好,现在基本被替代。 svn版本控制软件:简单、入门容易、国内使用量多,目前主流的版本控制软件。

分布式版本控制系统——git

谁都会走 提交于 2019-11-27 22:04:31
文章目录 一、git的简介 1.git的功能特性 二、git的常用命令使用 1.git的安装 2.本地版本库的搭建和文件的上传 3.暂存区和工作区的状态区别 4.版本的回退和升级 一、git的简介 Git是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。 Git最初 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。 1.git的功能特性 集中式版本控制系统最大的毛病就是必须联网才能工作。 那分布式版本控制系统与集中式版本控制系统有何不同呢?首先,分布式版本控制系统根本没有“中央服务器”,每个人的电脑上都是一个完整的版本库,这样,你工作的时候,就不需要联网了,因为版本库就在你自己的电脑上。既然每个人电脑上都有一个完整的版本库,那多个人如何协作呢?比方说你在自己电脑上改了文件A,你的同事也在他的电脑上改了文件A,这时,你们俩之间只需把各自的修改推送给对方,就可以互相看到对方的修改了。 和集中式版本控制系统相比,分布式版本控制系统的安全性要高很多,因为每个人电脑里都有完整的版本库,某一个人的电脑坏掉了不要紧,随便从其他人那里复制一个就可以了。而集中式版本控制系统的中央服务器要是出了问题,所有人都没法干活了。 二、git的常用命令使用 1.git的安装 因为git本就是为了管理linux而诞生的

【DRF版本控制】

前提是你 提交于 2019-11-27 20:51:53
目录 使用内置的URLPathVersioning类 使用自定义的版本控制类 "首先,我们开发的项目会有多个版本. 其次,我们的项目版本会随着更新越来越多,我们不可能因出了新版本就不维护旧版本了. 那么,我们就需要对版本进行控制——DRF版本控制. @ * 源码剖析** DRF视图中的APIView返回的是View类中的view函数,然后调用 dispatch 方法. 那么,我们来看看 dispatch 方法都做了些什么: 执行 self.initial 方法之前是各种赋值,包括request的重新封装赋值. self.initial 方法中有路由的分发,我们再来看下此方法具体都做了些什么: 我们可以看到: ==version版本信息赋值给了 request.version .== ==scheme版本控制方案赋值给了 request.versioning_scheme .== 其实这个版本控制方法就是我们配置的版本控制的类. 也就是说,APIView通过这个方法初始化自己提供的组件. 我们接下来看看 rest_framework 为我们提供了那些版本控制的方法(在 from rest_framework import versioning 文件内): 如上, rest_framework 为我们提供的所有版本控制的方法. 下面,我们来看看在URL上携带版本信息的用法. ***

SVN 命令行进行忽略设置

核能气质少年 提交于 2019-11-27 19:46:15
svn ignore 的用法(忽略文件及目录) 若想创建了一个文件夹,并且把它加入 版本控制 ,但忽略文件夹中的所有文件的内容: $ svn mkdir spool $ svn propset svn:ignore '*' spool $ svn ci -m 'Adding "spool" and ignoring its contents.' 若想创建一个文件夹,但不加入版本控制,即忽略这个文件夹: $ mkdir spool $ svn propset svn:ignore 'spool' . $ svn ci -m 'Ignoring a directory called "spool".' 若已经创建了文件夹,并加入了版本控制,现在想忽略这个文件夹,但要保持文件夹的内容: $ svn export spool spool-tmp $ svn rm spool $ svn ci -m 'Removing inadvertently added directory "spool".' $ mv spool-tmp spool $ svn propset svn:ignore 'spool' . $ svn ci -m 'Ignoring a directory called "spool".' 如果想在SVN提交时,忽略某个文件,也就是某个文件不提交,可以使用 svn

API接口版本控制

陌路散爱 提交于 2019-11-27 15:10:35
1 设计原因 APP接口的开发不同于PC WEB的开发,APP会经常的版本迭代,不同版本的APP接口可以同时使用,老版本的APP和新版APP可以同时使用,为了便于维护和管理,就有必要设计好APP接口的管理策略。 2 数据库及接口设计 数据库包含字段:app版本号、更新内容、是否强制更新。 接口传递的参数:app版本号。 3 升级状况 3.1 升级接口 AppStore不支持强制升级,后台必须提供升级接口。 3.2 渠道 App可能分多个渠道进行推广,比如AppStore, 越狱版本等等。 那种渠道的版本升级很可能不同。 3.3 强制升级 版本升级中,一些版本需要强制升级到高版本。 比如, V3--->V4->>>V5--->V6。 V3可以选择性的升级到V4,V4必须升级到V5,V5可以选择性的升级到V6。 如果服务器的接口只提供最新版本的版本号和是否强制升级标识(由运营设置),然后由客户端来比较是否要升级。 如果最新版本是V5, 那么是没有什么问题的。 但是如果最新版本已经到V6,而某个客户还停留在V3或者V4。那么如果不强制升级的话,可能就有很大的问题。 3.4 接口升级变化 3.4.1 接口变化 接口不可能一成不变,在不停迭代中,总会发生变化。接口的变化一般会有几种: 数据的变化,比如增加了旧版本不支持的数据类型 参数的变化,比如新增了参数 接口的废弃,不再使用该接口了 3

php面试知识

荒凉一梦 提交于 2019-11-27 13:53:44
又开始搞php了,好多php知识忘记了,学习php的方法是看面试题 下面是我搜集的一份php的面试题目 1、用PHP打印出前一天的时间格式是2006-5-10 22:21:21(2分) echo date("Y-m-d H:i:s",strtotime("-1 day")); 2、echo(),print(),print_r()的区别(3分) echo是PHP语句,可输出一个或多个字符串,echo效率相对较高,无返回值. print和print_r是函数,有返回值. print只能打印简单类型变量(如int,string等),只可以同时输出一个字符串. print_r可打印复杂类型变量(如数组,对象等) 3、能够使HTML和PHP分离开使用的模板(1分) templateLib,smarty,….. 4、使用哪些工具进行版本控制?(1分) 比较有代表性的:CVS,Subversion 5、如何实现字符串翻转?(3分) 方式多种多样,直接利用PHP的strrev函数实现字符串翻转.或自己写: $str = "hello,World!"; for($i=strlen($str)-1; $i>=0; $i--) { echo $str[$i]; } echo "\n"; 6、优化MYSQL数据库的方法。(4分,多写多得) 创建索引;优化数据库表结构 使用存储过程; 7、PHP的意思

有 Github 帐号 ≠ Github

痞子三分冷 提交于 2019-11-27 12:58:33
原文来自我在 Segmentfault 的回答: GitHub 应该放什么类型的代码? 这是一个误会 我想,现在很多程序员都对 Github 存在误解。 大多都是觉得『虽不明,但觉厉』的样子,以为有个 Github 帐号就算是世界级的程序员了。 由于公司招聘有 Github 加分 ,所以很多人都把 Git 地址贴过去,然后就这样: 其中不乏工作 5 年以上的,煞有介事的把 空无一物 的 Github 地址粘贴过去。 个人来说,我要看应聘者的 Github,就是看你 做了什么项目 编码风格如何 能不能用 Git 做好版本控制 commit message 写得怎么样 工程管理习惯 等等 从一个小地方能看出很多东西,我想如果 10 来分钟就能大致了解一个人的水平如何,不是能很好的节省招聘成本,为双方省时间么? Markdown 现在有很多工作 5 年以上的程序员, Markdown 都不会好好写(我不仇视也不鄙视这样的人,因为都是可以学的)。Github 一个仓库下来总要写个 README.md 的吧? README.md 也能告诉我很多信息: Markdown 水平不说 文档的编写风格决定了我能不能跟 TA 做朋友(无所谓的态度、乱糟糟的文档,我不喜欢这样的程序员,哪怕他水平比我高很多,团队协作的时候他会不在乎很多东西) 把合作对象当做用户来友好对待(一个好的 README.md

Jenkins持续集成教程(一)

醉酒当歌 提交于 2019-11-27 11:18:40
1.目标 1.1 了解jenkins的基本概念 1.2 持续集成的组成部分 1.3 了解jenkins,下载,安装jenkins 1.4 使用jenkins的插件 1.5 jenkins的使用配置 1.6 使用jenkins创建任务并实现自动化集成和部署 1.7 任务状态的监控和邮件通知 2.什么是持续集成(持续集成的基本概念) 2.1 简介 continuous Integration,简称CI。 起因:软件开发复杂度提高,为了团队之间更好的协同工作,保障开发质量。 工作过程:开发人员需经常集成自己的工作成果,每次集成都是通过自动化的构建来完成,包括:自动拉取仓库代码、自动编 译、自动发布、自动测试。为了更快更好的发现问题,提高团队开发效率 大白话:各个开发人员的工作成果不需要在工作一段时间(可能几个星期)后进行将代码集成,jenkins会很频繁的集成代码然后 自动发布测试,能够尽快发现问题。(如果人工集成,集成很耗时耗力,并且集成时间会耗费在开发时间里)。 2.2 核心价值 2.2.1 集成的任意环节都是自动完成,无需人工太多干预 2.2.2 能尽快发现软件的集成问题(因为频繁集成,每一次集成就有可能发现集成问题) 2.2.3 能很快适应需求变更(经常变更需求真的很烦) 2.2.4 减少管理风险 2.3 应用场景 举个例子:小明写个一个月代码,然后合并,花了3天解决冲突

Git复习(一)之简介、安装、集中式和分布式

点点圈 提交于 2019-11-27 11:14:02
简介 Git是 分布式版本控制系统, 使用C语言开发的 , CVS、SVN是 集中式的版本控制系统, 集中式的版本控制系统不但速度慢,而且必须联网才能使用。 Git是分布式版本控制系统,同一个Git仓库,可以分布到不同的机器上。怎么分布呢?最 早,肯定只有一台机器有一个原始版本库,此后,别的机器可以“克隆”这个原始版本库,而且每台机器的版本库其实都是一样的,并没有主次之分。 ⚠️安装所有的版本控制系统,其实只能跟踪 文本文件 的改动,比如TXT文件,网页,所有的程序代码等等,Git也不例外。版本控制系统可以告诉你每次的改动,比如在第5行加了一个单词“Linux”,在第8行删了一个单词“Windows”。而图 片、视频这些 二进制文件 ,虽然也能由版本控制系统管理,但 没法跟踪文件的变化 ,只能把二进制文件每次改动串起来,也就是只知道图片从100KB改成了120KB,但到底改了啥,版本控制系统不知道,也没法知道。 Git可以在Linux、Unix、Mac和Windows这几大平台上正常运行。 Mac OS X上安装Git 方法一:通过homebrew安装 homebrew install git 方法二:通过Xcode安装,Xcode集成了Git,不过默认没有安装,你需要运行Xcode,选择菜单“Xcode”->“Preferences”,在弹出窗口中找到“Downloads”,选择