git svn混用

news2024/7/30 15:32:51

背景

项目代码管理初始使用的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.coloradmin.cn/o/1512829.html

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

相关文章

突然估摸出了chrome数据的备份

首先是下载 其默认下载到c盘。 我们打开刚刚安装的chrome的位置, 我电脑上是 C:\Users\Lenovo\AppData\Local\Google\Chrome\Application 第一个文件名和版本号对应。 我们查看其上级目录,可以发现有个User Data,这个文件夹里面存放的就是…

发送短信验证码

​​​​​​【短信验证码-快速报备签名】三网短信接口-短信-短信验证码-短信服务-三网短信接口-短信-三网短信【最新版】_商业智能_电商_金融-云市场-阿里云阿里云云市场提供 专注企业短信服务10年运营与技术积累,稳定、安全、快速。服务,建站服务&…

雷达图相关

1.中间显示数字 title: {text: 88,x: center,y: center,textStyle: {color: #333,fontWeight: bolder,fontSize: 64,} } 2.提示信息 tooltip: {trigger: item, // 当鼠标悬浮在某个数据项上时触发}, 3.修改中间颜色 默认: splitArea: {areaStyle: {color: [rgba(…

初识Spring MVC

什么是Spring MVC? 官方给的解释是 Spring Web MVC 是基于 Servlet API 构建的原始 Web 框架,从⼀开始就包含在 Spring 框架中。它的 正式名称“Spring Web MVC”来⾃其源模块的名称(Spring-webmvc),但它通常被称为"Spring MVC" 注:Severlet是…

近700所高校,2024年预算出炉!

办学经费,是高校发展的核心与基石。学校人才培养、科学研究等各项事业的开展,都有赖于教育经费的支持。 近日,全国已有北京、上海、江苏、浙江等20多个省(市、自治区)的高校对外公布了2024年预算经费,小编…

阳光保险MySQL数据库平稳迁移OceanBase,稳定运营超700天

作者简介: 车东兴:于阳光保险就职,深耕保险行业的 IT 领域长达12 年,对保险领域的基础架构实践有深刻的理解与掌握。熟悉多款数据库,具有丰富的数据库运维经验。 王华城:于阳光保险就职,10多年一…

中科数安 | 电子文档加密软件——企业数据资料防泄密系统

整体介绍: 中科数安电子文档加密软件,作为一款专为企业级数据安全打造的核心产品,它将尖端加密技术与智能管理策略完美融合,为您企业的核心电子文档提供全方位、多层次的安全防护。我们的加密软件不仅能实现文档的透明加密&#x…

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

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

【C语言】字符串函数下

👑个人主页:啊Q闻 🎇收录专栏:《C语言》 🎉道阻且长,行则将至 前言 这篇博客是字符串函数下篇,主要是关于长度受限制的字符串函数(strncpy,strncat,strncmp)的使用…

【绘图案例-通过storyboard使用Modal Objective-C语言】

一、继续之前的Modal,刚才讲了通过代码使用Modal,继续说如何通过storyboard来使用Modal, 1.先选中这一段代码, 删掉, 再来到TestViewController.m文件里边,选中这一段代码,也删掉, 这个也无所谓啊,这个类,直接删了就行, 选中这个类,Delete,选择Move to Trash, …

机器学习-04-分类算法-03KNN算法

总结 本系列是机器学习课程的系列课程,主要介绍机器学习中分类算法,本篇为分类算法与knn算法部分。 本门课程的目标 完成一个特定行业的算法应用全过程: 懂业务会选择合适的算法数据处理算法训练算法调优算法融合 算法评估持续调优工程化…

mysql启动报错:ERROR! The server quit without updating PID file

mysql 重启或者启动时报错:ERROR! The server quit without updating PID file (/home/data/mysql/e787y33206.novalocal.pid).如下图: 重启报错: 启动也报错 这个错误是因为有mysql启动没有完全结束,如果是重启mysql服务,则在…

【PyQT/Pysider】控件背景渐变

默认渐变配色说明 background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:0, stop:0 rgba(255, 178, 102, 255), stop:0.55 rgba(235, 148, 61, 255), stop:0.98 rgba(0, 0, 0, 255), stop:1 rgba(0, 0, 0, 0));这段样式表使用了qlineargradient函数来创建…

当HR问你:“如果你与上级的意见不一致,你会怎么处理?”【文章底部添加进大学生就业交流群】

在面对与直属领导意见不一致的情况时,我会坚定地支持直属领导的决定。在过去的实习经历中,我也遇到过类似的情况,而我的处理方法是“坚定执行,逐渐理解”。 我个人有很多想法,但我也明白直属领导的视角和我的视角可能…

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

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

如何采集电商网站数据之抖音商品搜索商品详情数据采集

电商网站的数据包含了丰富的市场和用户信息,对于商业决策和竞争分析至关重要。数据采集是获取这些有价值信息的关键步骤。下面将详细介绍如何采集电商网站数据,帮助你掌握这一重要技能。 1. 设定数据采集目标 在开始采集之前,明确你的数据采…

初识进程状态

🌎进程状态【上】 文章目录: 进程状态 发现进程的状态 运行队列 进程排队 进程状态的表述       状态在代码中的表示       运行状态       阻塞状态       挂起状态 总结 前言: 为了搞明白正在运行的进程是什么意思…

优思学院|为什么企业要做质量管理体系认证?

在二战后的美国,公司对自己的产品质量颇为自满。市场需求旺盛,产品销售状况良好,即便产品存在质量缺陷,消费者似乎也能接受。这种态度导致了一种现象:即使在生产结束时发现了一定比例的缺陷,公司也能通过加…

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

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

解决 mmseg/models/decode_heads/mask2former_head.py 中__init__()关键字参数错误

目录 【1 - 问题描述】 【2 - 报错位置检查】 【3 - 问题解决】 【4 - 解决的过程】 【1 - 问题描述】 在mmsegmentation中运行mask2former模型的分割任务遇到报错缺少关键字的错误: TypeError: class Mask2FormerHead in mmseg/models/decode_heads/mask2form…