当前位置: 首页 > news >正文

TortoiseSVN迁移到本地git

TortoiseSVN迁移到本地git

文章目录

  • TortoiseSVN迁移到本地git
    • 0 背景
    • 1 环境准备
    • 2 SVN库迁移到VisualSVN
      • 2.1 导出dump
      • 2.2 将dump文件灌入VisualSVN
      • 2.3 获取SVN仓最新URL
    • 3 迁移到Git库中
    • 4 迁移分支到Git库
    • 5 创建本地远端库
      • 创建空仓
      • 关联空仓
      • 推送代码

0 背景

之前在前东家工作都是采用git进行项目管理,高效便捷,而现在的工作过程中是采用SVN对项目代码进行管理,采用TortoiseSVN小乌龟在windows下进行版本控制,开发代码起来优点说不出的变扭,趁着今天有时间操作把TortoiseSVN上的项目迁移到Git上。

1 环境准备

  • Git,我当前是在windows上操作,下载对应版本即可;网上说需要git svn之类的,我没有额外安装,应该就会自带;
  • VisualSVN,SVN的库管理工具,我选的是64位版本;
  • TortoiseSVN,小乌龟版本管理工具,我也是下载的64位;
  • TortoiseGit(可选),Git界面管理工具,方便后续git做版本管理时是用;

可以使用下面两个命令检查git是否安装:

git --version
git svn --version

2 SVN库迁移到VisualSVN

windows上直接操作svn库迁移到git,可能会出现无法识别“file:///xxxx”路径的问题(没错,就是我遇上了)。
在这里插入图片描述
就是这个URL!在windows执行git svn clone命令时会一直失败,如图所示:
在这里插入图片描述
于是我才用了一种曲线救国方式,通过把库迁移到VisualSVN,通过VisualSVN把URL折射成http的格式,然后进行映射操作:

2.1 导出dump

首先是需要把当前SVN库先dump出来,然后才能导入到VisualSVN
执行代码:

svnadmin dump [svn库物理地址] > svnproject.dump

注意:这里有个坑,不是填svn的URL,而是对用svn库的物理地址;
执行情况如下:
在这里插入图片描述
执行完说明导出是OK的。

2.2 将dump文件灌入VisualSVN

导出ok后,记住dump文件对应地址,现在需要把导出的文件灌入到VisualSVN里面去,当然需要先创建一个空仓来存储。
执行代码:

svnadmin load "[空仓路径]" < svnproject.dump

执行情况截图如下:
在这里插入图片描述
输出完说明导入成功!里面会打印各个版本号,也可以通过检查灌入是否正常~

2.3 获取SVN仓最新URL

在这里插入图片描述
这里会提示输入用户名、密码,设置一个自己能记住的就行,后面也会用到;然后你就会发现剪切板里面的URL变成了:http://xxxxx,证明这一步已经成功;

3 迁移到Git库中

执行命令:

git svn clone [svn的URL] --stdlayout [Git库路径]

执行成功会打印下面这串,等几分钟执行打印完即可。
在这里插入图片描述

4 迁移分支到Git库

咱们开发代码过程中经常需要用到分支,上述操作能够把主干代码同步过去,但是分支的地方还不行,这里只需要一个命令就可以搞定:

git svn fetch

下载后,需要在git上创建对应分支:

 for branch in $(git branch -r | grep -v '/tags/' | grep -v '/trunk'); dogit branch ${branch#origin/} $branch
done

搞定,看下效果:
在这里插入图片描述
这个时候也能用git log看下日志是否正常,可以看到所有分支的commit都已经同步过来了~
大功告成~

5 创建本地远端库

很多朋友在公司开发代码是不允许上传到外网的,只能在内网进行访问,那么就可以在本地搭建一个远端库进行代码管理。推送GitHub的操作网上已经有很多教程,这里不再赘述。本文介绍如何在本地快速创建仓库并推送远端;

创建空仓

首先,在本地或者内网服务器上创建一个空文件夹,然后创建一个空仓:

git init --bare

关联空仓

在当前项目的git目录下添加远端库:

git remote add origin [远端库路径]

推送代码

保存本地修改的代码,推送到远端仓库

git push -u origin master

如果你是第一次操作且分支比较多时,可以一个命令推送所有本地分支:

git push --all origin

当然也可以推送所有标签(如有)

git push --tags origin

这个时候在另一个新目录clone远端库地址,就能看到完整代码了~

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • P2045 方格取数加强版
  • 人工智能时代,程序员当如何保持核心竞争力?
  • 通过代码学python——格式化变量
  • 当AIGC走进温室大棚:AI+“种菜“的前世今生
  • ACl访问控制实验
  • Ceres Cuda加速
  • 【你也能从零基础学会网站开发】SQL Server 2000中的数据类型之String字符串类型
  • Java:基础语法
  • javascript 的奇技巧淫一
  • Java面试八股之JDK 动态代理和 CGLIB 动态代理的区别
  • 用户画像系列——Spark任务调优实践
  • mysql问题解决
  • 【Material-UI】Icon Button 组件详解
  • 【2.4 python中的基本输入和输出】
  • 【vulnhub】Bob:1.0.1靶机
  • [译]Python中的类属性与实例属性的区别
  • CNN 在图像分割中的简史:从 R-CNN 到 Mask R-CNN
  • eclipse(luna)创建web工程
  • go append函数以及写入
  • HTTP 简介
  • Laravel Telescope:优雅的应用调试工具
  • mongo索引构建
  • mysql外键的使用
  • PAT A1017 优先队列
  • Redux 中间件分析
  • SQLServer插入数据
  • vue学习系列(二)vue-cli
  • Zepto.js源码学习之二
  • 安装python包到指定虚拟环境
  • 分布式任务队列Celery
  • 模仿 Go Sort 排序接口实现的自定义排序
  • 三分钟教你同步 Visual Studio Code 设置
  • 深度解析利用ES6进行Promise封装总结
  • 实战:基于Spring Boot快速开发RESTful风格API接口
  • 字符串匹配基础上
  • Python 之网络式编程
  • ​学习一下,什么是预包装食品?​
  • # windows 安装 mysql 显示 no packages found 解决方法
  • #NOIP 2014#Day.2 T3 解方程
  • #考研#计算机文化知识1(局域网及网络互联)
  • #快捷键# 大学四年我常用的软件快捷键大全,教你成为电脑高手!!
  • (20)docke容器
  • (el-Date-Picker)操作(不使用 ts):Element-plus 中 DatePicker 组件的使用及输出想要日期格式需求的解决过程
  • (附程序)AD采集中的10种经典软件滤波程序优缺点分析
  • (六)Hibernate的二级缓存
  • (论文阅读32/100)Flowing convnets for human pose estimation in videos
  • (七)Knockout 创建自定义绑定
  • (三分钟)速览传统边缘检测算子
  • (四)Android布局类型(线性布局LinearLayout)
  • (文章复现)基于主从博弈的售电商多元零售套餐设计与多级市场购电策略
  • (五)网络优化与超参数选择--九五小庞
  • (循环依赖问题)学习spring的第九天
  • (一) storm的集群安装与配置
  • (转)iOS字体
  • (自用)网络编程