git svn混用

背景

项目代码管理初始使用的svn,  由于svn代码操作,无法在本地暂存,有诸多不便,另外本人习惯使用git.   所以决定迁移至git管理

迁移要求:

保留历史提交记录

迁移流程

代码检出
git svn svn_project_url
git代码提交

修改本地代码,使用git add/commit将修改提交到本地git库

git add/commit
同步svn更新

定期使用git svn rebase获取中心svn repository的更新

git svn rebase
git本地更新,同步至svn

使用git svn dcommit命令将本地git库的修改同步到中心svn库

git svn dcommit

其他

检出一个已存在svn repository(类似于svn checkout)

一般情况下git svn clone这个操作会从第一个版本开始同步,如果版本号已经到了好几万(或更高),这个操作会相当的费时。这时可以使用参数-r$REVNUMBER:HEAD检出指定版本后的代码。

因此,更好的步骤应该是这样:

svn info svn_repository_url, 记录最后的版本号,假设是220

假设要检出最后20个版本,做个简单的减法: 220 – 20 = 200

开始clone操作了:git svn clone -r200:HEAD svn_repository_url

git svn clone -r200:HEAD svn_repository_url

从中心服务器的svn repository获取最新更新

这个操作可以通过”git svn rebase”完成。注意这里用的是rebase,而不是update。update命令对于通过git svn检出的svn repostory的git版本库是不可用的。

查看提交历史日志

使用”git svn log”,加上-v选项,还可以提供每次commit操作涉及的相关文件的详细信息。

git svn log

将本地代码同步到Svn服务器

通过”git svn dcommit”命令。这个命令会将你在本地使用git commit提交到本地代码库的所有更改逐一提交到svn库中。加上-n选项,则该命令不会真正执行commit到svn的操作,而是会显示会有哪些本地 变动将被commit到svn服务器。git svn dcommit似乎不能单独提交某个本地版本的修改,而是一次批量提交所有与svn中心版本库的差异。

提交时的冲突解决

如果你正在提交的文件在svn服务器上已经被别人改过,就会发生提交冲突。通常解决方法如下:

首先使用git svn rebase获取svn服务器上的最新冲突文件,比如:demo.java,这将导致与本地demo.java冲突,不过此时svn版本信息已经添加到本地git库中(通过git log可以查看),git svn rebase提示你在解决demo.java的冲突后,运行git rebase –continue完成rebase操作

打开demo.java,修改代码,解决冲突

执行git rebase –continue,git提示:You must edit all merge conflicts and then mark them as resolved using git add

执行git add demo.java,告知git已完成冲突解决

再次执行git rebase –continue,提示”Applying: git xxx”,此时”git xxx”版本又一次成功加入本地版本库,可通过git log查看;

执行git svn dcommit将demo.java的改动同步到svn中心库,到此算是完成一次冲突解决。

尽量在线模拟验证后,再迁移项目

svn在线托管网址

SVNBucket - SVN仓库,免费 SVN 代码托管服务器,不限私有,不限成员SVNBucket是一个SVN代码托管平台,提供了可视化的管理界面,让操作变得简单、方便,超大在线SVN空间。知名厂商 OPPO 的选择,安全稳定、长久运营、放心使用。不限私有项目、不限成员数量,支持文件级权限控制、SVN 钩子icon-default.png?t=N7T8https://svnbucket.com/

git在线托管网址

Gitee - 基于 Git 的代码托管和研发协作平台面向企业提供一站式研发管理解决方案,包括代码管理、项目管理、文档协作、测试管理、CICD、效能度量等多个模块,支持SaaS、私有化等多种部署方式,帮助企业有序规划和管理研发过程,提升研发效率和质量。icon-default.png?t=N7T8https://gitee.com

祝顺利

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/741157.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

得物布局构建耗时优化方案实践

一、背景 当谈到移动应用程序的体验时,页面启动速度是其中至关重要的一点,更快的页面展示速度确保应用程序可以迅速加载并响应用户的操作, 从而提高用户使用 App 时的满意度。在页面启动的整个流程中,随着 UI 复杂度的上升,布局的…

【Java探索之旅】解密Java中的类型转换与类型提升

🎥 屿小夏 : 个人主页 🔥个人专栏 : Java编程秘籍 🌄 莫道桑榆晚,为霞尚满天! 文章目录 📑前言一、类型转化1.1 自动类型转换(隐式类型转换)1.2 强制类型转换…

Arduino IDE的下载和安装

一、Arduino的介绍 Arduino是一款开源电子原型平台,主要包含两部分:硬件(各种型号的Arduino板)和软件(Arduino IDE)。这个平台由意大利的Massimo Banzi、David Cuartielles等人共同开发设计,并于…

ES分片均衡策略分析与改进

从故障说起 某日早高峰收到 Elasticsearch 大量查询超时告警,不同于以往,查看 Elasticsearch 查询队列监控后发现,仅123节点存在大量查询请求堆积。 各节点查询队列堆积情况 查看节点监控发现,123节点的 IO 占用远高于其他节点。…

【论文阅读】IEEE Access 2019 BadNets:评估深度神经网络的后门攻击

文章目录 一.论文信息二.论文内容1.摘要2.引言3.主要图表4.结论 一.论文信息 论文题目: BadNets: Evaluating Backdooring Attacks on Deep Neural Networks(BadNets:评估深度神经网络的后门攻击) 论文来源: 2019-IEEE Access …

安卓内嵌uniapp的H5页面 android调用h5内部方法

uniapp H5与原生安卓的数据互通和方法调用_安卓代码中调用uniapp中页面中的方法-CSDN博客文章浏览阅读8.7k次,点赞4次,收藏22次。1、准备我这里是uniapp与原生安卓之间的相互调用,也就是原生安卓内嵌H5页面,下面先来准备一下安卓端…

吴恩达 x Open AI ChatGPT ——如何写出好的提示词视频核心笔记

核心知识点脑图如下: 1、第一讲:课程介绍 要点1: 上图展示了两种大型语言模型(LLMs)的对比:基础语言模型(Base LLM)和指令调整语言模型(Instruction Tuned LLM&#xff0…

CentOS 7 devtoolset编译addressSanitizer版本失败的问题解决

在我的一个Cent OS7开发环境中,按https://yeyongjin.blog.csdn.net/article/details/134178420的方法升级GCC版本到8.3.1。 这两天,要用Google的addressSanitizer检验内存问题,加上编译参数后,却发现编译不通过。configure时直接退…

WanAndroid(鸿蒙版)开发的第二篇

前言 DevEco Studio版本:4.0.0.600 WanAndroid的API链接:玩Android 开放API-玩Android - wanandroid.com 1、WanAndroid(鸿蒙版)开发的第一篇 其他一些参考点,请参考上面的WanAndroid开发第一篇 效果 首页实现 整体布局分为头部的Banne…

基于Gui Guider进行LVGL的页面绘制和移植

在之前的文章里讲过一种页面切换的方式,那就是:定义和创建页面对象绘制页面内容切换页面。参考这篇文章: LVGL如何创建页面并实现页面的切换-CSDN博客 这篇文章讲了如何绘制并切换页面。 但是现在遇到一个问题,那就是页面绘制&…

代码学习记录17

随想录日记part17 t i m e : time: time: 2024.03.12 主要内容:今天的主要内容是二叉树的第六部分,主要涉及二叉搜索树的最小绝对差 ;二叉搜索树中的众数;二叉树的最近公共祖先。 530.二叉搜索树…

openGauss使用BenchmarkSQL进行性能测试(上)

一、前言 本文提供openGauss使用BenchmarkSQL进行性能测试的方法和测试数据报告。 BenchmarkSQL,一个JDBC基准测试工具,内嵌了TPC-C测试脚本,支持很多数据库,如PostgreSQL、Oracle和Mysql等。 TPC-C是专门针对联机交易处理系统…

【QT】文件流操作(QTextStream/QDataStream)

文本流/数据流&#xff08;二级制格式&#xff09; 文本流 &#xff08;依赖平台&#xff0c;不同平台可能乱码&#xff09;涉及文件编码 #include <QTextStream>操作的都是基础数据类型&#xff1a;int float string //Image Qpoint QRect就不可以操作 需要下面的 …

【Python】新手入门学习:详细介绍接口分隔原则(ISP)及其作用、代码示例

【Python】新手入门学习&#xff1a;详细介绍接口分隔原则&#xff08;ISP&#xff09;及其作用、代码示例 &#x1f308; 个人主页&#xff1a;高斯小哥 &#x1f525; 高质量专栏&#xff1a;Matplotlib之旅&#xff1a;零基础精通数据可视化、Python基础【高质量合集】、Py…

基于Qt 和python 的自动升级功能

需求&#xff1a; 公司内部的一个客户端工具&#xff0c;想加上一个自动升级功能。 服务端&#xff1a; 1&#xff0c;服务端使用python3.7 &#xff0c;搭配 fastapi 和uvicorn 写一个简单的服务&#xff0c;开出一个get接口&#xff0c;用于客户端读取安装包的版本&#…

<机器学习初识>——《机器学习》

目录 一、人工智能概述 1 人工智能应用场景 2 人工智能发展必备三要素 3 人工智能、机器学习和深度学习 二、人工智能发展历程 1 人工智能的起源 1.1 图灵测试 1.2 达特茅斯会议 2 发展历程 三、 人工智能主要分支 1 主要分支介绍 1.1 分支一&#xff1a;计算机视觉…

c++中string的模拟实现(超详细!!!)

1.string的成员变量、&#xff08;拷贝&#xff09;构造、析构函数 1.1.成员变量 private:char* _str;size_t _size; //string中有效字符个数size_t _capacity; //string中能存储有效字符个数的大小 1.2&#xff08;拷贝&#xff09;构造函数 //构造函数string(const char* …

【Linux进阶之路】HTTP协议

文章目录 一、基本概念1.HTTP2.域名3.默认端口号4.URL 二、请求与响应1.抓包工具2.基本框架3.简易实现3.1 HttpServer3.2 HttpRequest3.2.1 version13.2.2 version23.2.3 version3 总结尾序 一、基本概念 常见的应用层协议&#xff1a; HTTPS (HyperText Transfer Protocol Sec…

C# 8.0+版本项目 string不可为空

1.在某一次新建项目的时候发现&#xff0c;新建的项目&#xff0c;写的测试接口&#xff0c;接口的入参有string的参数&#xff0c; 但是调用接口的时候string的参数没有传报了400&#xff0c;很奇怪&#xff0c;也没有语法错误之类的。 2.解决办法 在项目上右键->属性->…

鸿蒙Harmony应用开发—ArkTS声明式开发(基础手势:Span)

作为Text组件的子组件&#xff0c;用于显示行内文本的组件。 说明&#xff1a; 该组件从API Version 7开始支持。后续版本如有新增内容&#xff0c;则采用上角标单独标记该内容的起始版本。 该组件从API Version 10开始支持继承父组件Text的属性&#xff0c;即如果子组件未设置…