从SVN迁移到Git(包括SVN历史纪录)【最系统的讲解】

git svn clone 失败报错解决方法 将公司svn代码迁移至gitlab,git svn clone命令失败,报错信息如下:Can't load '/usr/lib/perl5/vendor_perl/auto/SVN/_Core/_Core.dll' for module SVN::_Core: No such file or directory at…… 阅读详情

从SVN迁移到git有很多方法,最简单的就是使用git包自带的git svn命令(git v1.7及以上)。除此之外还有一些第三方的专门的转换工具如http://www.subgit.com/,https://www.atlassian.com/git/tutorials/migrating-overview/等。但是由于是第三方工具,感觉能不用就不用。


使用git svn命令最经典的就是

$git svn clone --stdlayout --no-metadata -A users.txt svn://hostname/path dest_dir


其中:

--stdlayout就是说你使用的是标准的"trunk/, branches/, tags/" 等标记;

 --no-metadata命令是为了不要svn的额外的commit信息(UUID),一般也不需要,所以都带这个参数;

users.txt是把SVN的用户转成git用户的文件,这个文件可以用SVN的命令生成(如果用户很少自己写也可以),文件的形式如下:

svn_user1 = git_user1 < git_user1_mail@xxx.com>
svn_user2 = git_user2 < git_user2_mail@xxx.com>

每行一个user,等号左边是SVN的用户(区分大小写),等号右边就是git的用户,git的用户必须存在用户名和邮箱。如果用户比较多,可以使用下命令创建:

svn log -q | awk -F '|' '/^r/ {sub("^ ", "", $2); sub(" $", "", $2); print $2" = "$2" <"$2">"}' | sort -u > users.txt

然后编辑user.txt为上面的格式。


后面的url就是你的SVN checkout的url,支持的协议有SVN://,http://,https://,(如果你是做的本地服务器用的file:///形式的,有时候是不行的)

dest_dir就是目标git目录了。


这个命令一般都是没问题的。但是就如上面所说,如果SVN是本地服务器有时候就不行了,要么报错,要么只生成一个空的git容器。

其实这个命令是一个合成版本,可以使用它的拆分版,即:

$mkdir dest_dir && cd dest_dir
$git svn init file:///xxxxx/xxxx/xxxx --no-metadata
$git config svn.authorsfile ../users.txt
$git svn fetch
参数和git svn clone是一样的,其实就是git svn的分解版。


如果你的SVN没有其他的branch,到这里就完了。如果有其他的branch,还需要手动创建git的branch迁移。


然后就可以把刚才的git push到远程服务器,当然,只在本地用也是可以commit的,不影响使用。(这是git和svn的一个很大的区别)


参考资料:http://stackoverflow.com/questions/79165/how-to-migrate-svn-repository-with-history-to-a-new-git-repository

SVN单个项目迁移到Gitlab 使用命令行方式,将SVN上的单个项目(没有trunk、branch、release等)迁移到Gitlab。 阅读详情

相关推荐

测试基础(一)

测试基础 1、软件生命周期有哪些阶段?常见的软件生命周期有哪些模型? (1)需求分析阶段:确定测试需求分析、系统测试计划的制定,评审后成为管理项目。测试需求分析是对产品生命周期中测试所需求的资源、配置、每个阶段评判通过的规约;系统测试计划则是依据软件的需求规格说明书,制定测试计划和设计相应的测试用例。 (2)项目规划阶段:负责从单元测试到系统测试的整个测试阶段的监控。 (3)详细设计和概要设计阶段:确保集成测试计划和单元测试计划完成。 (4)编码阶段:由开发人员进行自己负责部分的代码的测试。在项目比较大时,

weixin_46662172的博客 907

SVN迁移GIT

记录一下踩过的坑 参考了这篇文章 标准SVN仓库(根目录包含trunk等) git svn clone [SVN仓库地址,地址最后须增加'/'后缀] --prefix=svn/ --no-metadata --no-minimize-url --authors-file=userinfo.txt 非标准SVN仓库 git svn clone [SVN仓库地址,地址最后须增加'/'后缀] --prefix=svn/ --no-metadata --authors-file=userinfo.txt --

胖子喜欢吃肉 548

从SVN完美迁移到Git,我只用了5分钟

从SVN完美迁移到Git,我只用了5分钟SVN (Subversion) 是一个曾经热门的集中式版本控制工具,然而 Git 作为分布式版本控制工具,近年来特别受欢迎,很多公司、开发人员开始使用 Git 来替代 SVN。

BYvonne的博客 4689

SVN代码迁移至GITLAB(保留日志分支标签)操作与问题记录

svn 项目代码迁移至 gitlab

辞晚的博客 1840

西门子S7-200 SMART PLC高速计数器与增量式编码器实战配置指南

在工业自动化控制系统中,传感器是将物理量转换为电信号的关键组件,其中编码器作为核心的位置与速度检测元件,其工作原理基于光电或磁电效应,将机械位移转换为脉冲序列。增量式编码器通过输出相位差90度的A/B两相脉冲,不仅能实现精确的位移测量,还能通过相位关系自动判别运动方向,并通过倍频技术提升分辨率。其技术价值在于为PLC等控制器提供了实时、高精度的位置反馈,是实现闭环控制、提升系统精度与可靠性的基础。在包装机械、物料输送、绕线设备等应用场景中,编码器与PLC高速计数器的协同工作是实现精确定位、定长切割与速度控制

weixin_29178069的博客 395

从Palantir到AI时代:Forward Deployed Engineer模式的深度解析

《从Palantir到AI时代:FDE模式的创新与挑战》摘要:Palantir开创的前置部署工程师(FDE)模式正在成为AI创业公司的标配。该模式通过现场工程师深入了解客户需求,填补产品与实际应用间的鸿沟,颠覆了传统SaaS规模化路径。核心优势在于将定制化服务转化为产品发现机制,特别适合高度异质化的AI市场。成功关键在于平衡定制与标准化,通过合同价值增长、产品杠杆效应等独特指标衡量成效。FDE人才需要兼具领域洞察力与快速原型能力。这一模式表明,在AI等新兴领域,深入客户现场可能比单纯追求技术突破更能创造商业

老孙 | Ethan Sun 的博客:AI 智能体与 AI 原生软件的工程实践 4534

执行 git svn clone --stdlayout 命令无输出

摘要:使用git svn clone从SVN迁移到Git时,若仓库未采用标准目录结构(缺少trunk目录),使用--stdlayout参数会导致无法下载内容。正确的解决方法是移除该参数,直接执行git svn clone --authors-file=authors.txt [SVN仓库URL]。迁移耗时取决于仓库大小。

HONEY MOOSE 232

LLM推理服务中的SLO感知调度优化实践

在AI服务架构中,服务级别目标(SLO)是衡量服务质量的核心指标,特别是在大型语言模型(LLM)推理场景下。SLO通常涉及TTFT(首token时间)、TPOT(每token生成时间)和端到端延迟等关键维度,这些指标直接影响用户体验和系统效率。传统FCFS调度策略由于缺乏SLO感知能力,在混合负载下往往导致资源利用率低下和SLO达标率骤降。通过引入基于模拟退火的动态调度算法和精准的延迟预测模型,可以实现对不同优先级请求的智能调度,显著提升GPU利用率和SLO达标率。这种技术方案特别适用于需要同时处理实时对话

weixin_42549154的博客 369

Git,Gitlab,Github,svn,代码迁移

目录第1章版本控制1.1重点学习1.2版本控制概念1.3需要掌握内容1.4版本控制系统的分类1.4.1本地版本控制1.4.2集中化版本控制1.4.3分布式版本控制系统第2章Git介绍2.1官网2.2git功能2.3基于Git的产品2.3.1GitHub2.3.2Gitlab2.3.3码云2.4git特点第3章Git安装3.1yum安装3.2源码安装3.2.1安装依赖关系3.2.2编译安装3.2.3首次进入前设置第4章Git使用4.1初始化git仓库4.2添加文件4.3删除文件4.4改名4.5查看提交历史纪录

qq_39109226的博客 1692

UR5双臂Gazebo仿真(Python)

近来在Gazebo上搭了一个ur5双臂仿真平台。 差不多就是以下这样。 使用rostopic list查看一下话题,如下 显然,采用/left_arm_controller/follow_joint_trajectory/goal和/right_arm_controller/follow_joint_trajectory/goal两个话题来控制双臂的运动。 现在的问题是,如何保证双臂运动的一致性,即如何能保证双臂能同时接受到以上两个消息。 思路一:设置/left_arm_controlle

qq_42823342的博客 2233

codesys【modbusRTU】主站

【代码】modbusRTU【codesys】

cfqq1989的博客 4371

git切换版本后怎么切回去_git本地仓库管理方法总结

Eachone of you is betterthan anybody else at something前言hello大家好啊,我是James,这两天学校的服务器被老师关掉了,项目源码被重新迁移到了另一台服务器的仓库里,在迁移过程中,遇到很多代码合并冲突的问题,今天着重总结下在git本地仓库中一些对于维护代码完整性很重要的命令git简介Git是由linux之父linus构建的一套...

weixin_32553639的博客 1024

小白跑WRF第三天,安装三方依赖库

小白跑WRF第三天,安装三方依赖库各类安装包的准备 各类安装包的准备 官网教程:https://www2.mmm.ucar.edu/wrf/OnLineTutorial/compilation_tutorial.php 根据官网教程需要的安装包有以下几个 系统环境 用途 zlib-1.2.7 zlib是提供数据压缩用的函式库。 netcdf-4.1.3 读nc文件的。 mpich-3.0.4 用于并行运算的工具。 libpng-1.2.50 libpng是一款C语言编写的比较底层

weixin_42372313的博客 1万+

关于git,这一篇git命令汇总解析就够了

Git是目前世界上最先进的分布式版本控制系统。 很多人都知道,Linus在1991年创建了开源的Linux,从此,Linux系统不断发展,已经成为最大的服务器系统软件了。 Linus虽然创建了Linux,但Linux的壮大是靠全世界热心的志愿者参与的,这么多人在世界各地为Linux编写代码,那Linux的代码是如何管理的呢? 事实是,在2002年以前,世界各地的志愿者把源代码文件通过diff的方式发给Linus,然后由Linus本人通过手工方式合并代码! 下文将会讲到git的操作以及注册GitHub

Aaadsda414114的博客 973

Rancher入门到精通 - Nginx Ingress 配置指南

Rancher 是一个开源的容器管理平台,它提供了一套完整且易于使用的工具来部署、管理和扩展容器化应用。而 Nginx Ingress 则是一个常用的开源 Ingress 控制器,用于将外部请求流量导入到 Kubernetes 集群中的服务。在开始之前,请确保您已经正确安装了 Rancher 平台和 Nginx Ingress 控制器。

TechInk的博客 1311

数学建模算法案例精讲500篇-【深度强化学习】深度确定性策略梯度(DDPG)(附MATLAB和python代码实现)

它是一种学习连续动作的无模型策略算法。它结合了DPG(确定性策略梯度)和DQN(深度Q网络)的思想。它利用DQN中的经验重放和延迟更新的目标网络,并基于DPG,可以在连续的动作空间上运行。# 用于生成带有噪声的动作def __init__(self, action_space, mu=0.0, theta = 0.15, max_sigma = 0.3, min_sigma = 0.3, decay_period = 100000):#decay_period要根据迭代次数合理设置# 均值 mu。

qq_36130719的博客 325

git 分布式版本管理

git 分布式版本管理工具学习笔记Git 历史配置创建版本仓库把文件添加到版本库查看仓库的当前状态查看提交的历史记录时光穿梭机工作区和暂存区撤销修改远程仓库查看远程仓库添加远程仓库从远程仓库克隆创建与合并分支解决冲突 声明:本文作为自学廖雪峰老师的 Git 教程后,筛选摘抄出工作中常用的操作命令和技巧,补充了部分教程中没有提到的支持点,编辑而成,仅供学习参考使用。完整教程,欢迎访问廖雪峰老师的官方...

weixin_39766396的博客 4768

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

使用 gitee 建立 github 仓库镜像加速源码下载

gitee 提供了一个每日同步一次的 Github 镜像仓库 — 码云极速下载. 这个镜像站涵盖了github上大多数热门的仓库,对于没有镜像的仓库可以利用gitee自建镜像,迂回加速. 自建镜像仓库 1. 新建仓库 仓库名称建议保持与github仓库名一致, 选择导入已有仓库,填入github仓库克隆地址 点击创建,gitee会在后台自行下载此github仓库 2.可随时同步更新 github 仓库 ...

cheenbee的专栏 3527

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

从SVN迁移到GIT并保留所有的提交记录

早期某些项目使用的SVN,目前都使用的是GIT,那么如何将SVN的项目迁移到GIT并保留之前提交的记录呢。

huaweichenai的博客 1600

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

使用subgit进行svn迁移至git(branch,tags)

前言:   最近公司需要将整体项目从svn迁移至gitlab上,经过几天的研究,现记录一下流程   整体思路是进行一次导入:   先通过subgit将svn整个import至本地,在与git上的项目进行合并. 1.硬件环境   git:git version 2.7.4  svn: 1.6.11   subgit:3.2.22.下载subgit   官网下载subgit: ht...

weixin_33889665的博客 644

Gitea:从SVN迁移到Git

SVN和Git都是优秀的版本管理工具。不幸的是,对于从SVN迁移到Git的过程、命令和说明,网上不少文章存在误导性。因此本文以Gitea为例,演示从SVN迁移到Git的详细过程,及命令选项的说明解释。

zyplanke的专栏 2686

SVN项目如何转移到Git

git remote add origin http://xxxxx.git //此url地址是git目标仓库地址。git commit -m 'xx' //引号内可写备注信息。git init //新建一个.git文件。一、将所需的项目从svn复制一份到本地。三、进入文件夹路径下,执行cmd。二、复制git目标仓库地址。四、依次执行以下代码。

yinxuxu123的博客 959

SVN 合并分支

1、在主干项目右键TortoiseSVN -->合并,弹出合并选择

独孤求梦 904

svn log 命令不能显示全部log的解决方法

先执行 svn update 之后,再执行 svn log 便能列出最新提交的那一个revision 例,显示最新的3条日志 svn up svn log -l 3

linxinfa的专栏 3363

SVN转GIT

SVN迁移至Git

hwt1070359898的博客 955

svn 不能显示全部log的解决方法

============================================================ 博文原创,转载请声明出处 蓝岩--移动互联网老兵 ============================================================ 我一直使用命令行提交代码,因为是自己的project,只有自己一个人在修改,当我想看log...

mmdev 1916
上一篇: C++矩阵优化算法
魏王天下
博客等级 码龄17年 72粉丝 101原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值