`
LiYunpeng
  • 浏览: 939884 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

关于SVN老项目迁移到Git

阅读更多
之前使用过git-svn,感觉并不是很好用,后来在网上发现了这个东西

SubGit,一个传说中比git-svn好用的工具

准备工作
首先下载SubGit,地址http://www.subgit.com/download.html
然后解压到本地,可直接使用bin下的运行文件,也可以配置环境变量

具体使用分如下步骤
1.创建一个SVN 到 GIT的配置文件,使用命令如下
subgit configure --svn-url http://www.xxx.com/MyProject /User/LiYunpeng/Desktop/git

--svn-url后面跟了两个参数,第一个是SVN的仓库地址,第二个是GIT要生成的地址
我的环境是Mac OS,Windows还没有试过,这两个地址应该都可以为本地仓库,也可以为远端仓库,只要能够找到

接下来的步骤其实运行命令之后已经提示了
1) Adjust Subversion to Git branches mapping if necessary:
    /Users/LiYunpeng/Desktop/git/subgit/config
2) Define at least one Subversion credentials in default SubGit passwd file at:
    /Users/LiYunpeng/Desktop/git/subgit/passwd
   OR configure SSH or SSL credentials in the [auth] section of:
    /Users/LiYunpeng/Desktop/git/subgit/config
3) Optionally, add custom authors mapping to the authors.txt file(s) at:
    /Users/LiYunpeng/Desktop/git/subgit/authors.txt
4) Run SubGit 'install' command:
    subgit install /User/LiYunpeng/Desktop/git


2.生成配置文件后进行修改配置
此处要注意的是,我们的SVN的结构目录要相对标准,因为配置文件需要用到,如果不标准,可以通过svn工具或命令进行move调整
在步骤一中生成的路径文件夹下会生成一些文件,我们重点关注下subgit这个文件夹,下面会有config文件,可进行编辑,打开后大部分为注释掉的代码和一些描述。
通过刚才的命令,我们生成了SVN的地址,在配置文件中也可以找到,我们会涉及到如下的改动:

在配置文件中找到下面这一段
trunk = master:refs/heads/master
branches = branches/*:refs/heads/*
tags = tags/*:refs/tags/*
shelves = shelves/*:refs/shelves/*

他的作用是进行SVN的目录与Git中的mapping映射
等号前边的代表工具要识别的名称,不动
等号后边会通过:冒号来分割
冒号前边是SVN下的相对SVN路径的文件夹地址,也就是分别对应了trunk、branches、tags、sheleves,SVN的基础结构目录
冒号后边对应的自然就是Git中的一些关键的东西,分支、标签之类

下面修改账号的对应关系
在config文件中有对应账号配置的引用文件路径
authorsFile = subgit/authors.txt
也就是在subgit目录下的authors.txt,里面我们可以写多个用户对,如:
LiYunpeng = LiYunpeng <liyunpeng@live.com>
zhangsan =张三 <zhangsan1234556789@live.com>

等号前面的是SVN中的用户名,等号后边为Git的

下面修改SVN仓库的验证信息
在config文件中有一段对应配置
passwords = subgit/passwd
和上面的一样,验证信息配置在subgit目录下的password文件
LiYunpeng 123456

空格前面是名称,空格后面是密码,这里的密码是明文的,所以如果要在其他服务器上搭建的时候注意设置该文件的访问权限,以防密码被人知道啦。

3.配置文件完毕,执行安装
运行命令,对新创建的本地映射仓库进行安装
subgit install /User/LiYunpeng/Desktop/git

然后就是漫长的等待迁移过程,会把SVN上的提交记录一点一点的搞下来,会有进度
Translating Subversion revisions to Git commits...

    Subversion revisions translated: 1625.
    Total time: 805 seconds.

    INSTALLATION SUCCESSFUL

完成后会告诉你安装完成,转换了多少提交版本,用时多少

4.clone项目到你想要的目录
接下来,就是我们日常使用Git的流程了,只不过把我们用在远端仓库的http://***换成本地的地址,也就是/User/LiYunpeng/Desktop/git
以上就基本完成了,剩下的,如果想再提交到新的远端仓库,就先创建个新的远端仓库地址,然后clone到一个新分支,从转换过来的这个分支合并,然后提交到新仓库即可
分享到:
评论

相关推荐

    如何将SVN项目迁移至Git

    文中内容为,如何将SVN项目迁移至Git,相关完整执行命令,希望能帮助到各位码农朋友。 文中内容为,如何将SVN项目迁移至Git,相关完整执行命令,希望能帮助到各位码农朋友。 文中内容为,如何将SVN项目迁移至Git,...

    文中内容为,如何将SVN项目迁移至Git,相关完整执行命令,希望能帮助到各位码农朋友

    文中内容为,如何将SVN项目迁移至Git,相关完整执行命令,希望能帮助到各位码农朋友。 文中内容为,如何将SVN项目迁移至Git,相关完整执行命令,希望能帮助到各位码农朋友。 文中内容为,如何将SVN项目迁移至Git,...

    SVN迁移到Git

    从SVN迁移到Git之后,项目开发代码继续在SVN提交,如何同步迁移之后继续在SVN提交的代码到Git

    SVN项目迁移至git,完整版.docx

    全网只此一份,独家整理SVN项目迁移至git完整操作步骤,亲测有效。同时能很好的保留SVN提交历史记录。欢迎下载。

    svn2git.zip

    svn2git ,svn2git是一个微型工具用来将 Subversion上的项目迁移到Git上,并保留 trunk,...

    svn2gitnet:跨平台的svn到git migrator

    它旨在提供一种将项目从svn迁移到git的简单方法。 Svn2Git.NET基于git-svn因此请确保已安装git-svn 。 例子 假设我们在svn中有以下代码: trunk ... branches 1.x 2.x tags 1.0.0 1.0.1 1.0.2 1.1.0 ...

    svn-stash:就像git stash,但是对于Subversion

    但是,在我现在正在工作的一些旧项目中,从svn到git的迁移非常困难或不可能。 Git有一组我通常使用的很棒的命令(例如隐藏),svn没有直接等效的命令。 svn-stash试图将git stash命令的某些功能移植到Subversion中...

    SVN 迁移到Git,Gitlab

    先用svn checkout项目(如果本地已有,就无需check),命令行cd到目录下,执行 svn log --xml | grep ^&lt;author&gt; userinfo.txt 会输出一个userinfo.txt文件 linzhiji wanghongwei 接着编辑userinfo.txt文件,补充...

    git与svn的区别

    SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理...互联网上很多版本控制服务已从CVS迁移到Subversion。说得简单一点SVN就是用于多个人共同开发同一个项目,共用资源的目的

    Git权威指南PDF完整版

    Git权威指南 目 录 前 言 第1篇 初识Git 第1章 版本控制的前世和今生/ 2...第34章 CVS版本库到Git的迁移/ 492 34.1 安装cvs2svn(含 cvs2git)/ 492 34.1.1 Linux下cvs2svn的安装/ 492 34.1.2 Mac OS X 下 cvs2svn 的...

    使用git迁移Laravel项目至新开发环境的步骤详解

    对于如何创建一个Laravel项目,相信对新接触Laravel的朋友并不存在太多的问题,但是今天我们要来看一下如何将已有的Laravel项目迁移(复制)到新的开发环境。 我们需要用到的工具是git,如果你不知道git是什么,这里...

    圣SI园《深入掌握Git与实战开发》

    目前,已经有越来越多的项目开始或是准备开始从传统的svn向Git迁移,在这样的一个时代背景下,如果我们不去深入学习Git,将会真正错失这一切的美好。我时常说的一句话就是:“如果你还不会Git,那就不用再写代码了”...

    progit(git中文文档)

    *第九章*对比 Git 和其它 VCSs,包括在 Subversion(SVN)的世界使用 Git 以及从其它 VCSs 迁移到 Git。很多 组织 仍在使用 SVN,并且也没有计划改变,此时,你将了解到 Git 不可思议的能力——本章将展示,在你不得不 ...

    GitTfs-0.25.1.529

    公司的发展会遇到项目代码管理工具的更换,我们公司这遇到过以前C#语言写的代码一直用tfs管理,而php与java写的用svn管理,后来公司要求统一用git去管理,这个工具就是用来把tfs上的项目代码迁移到git上面去

    dvn-sourceforge2github:DVN代码从SourceForge上的svn迁移到GitHub上的git-git source code

    安装RVM和svn2git 另请参阅 murphy:~ pdurbin$ \curl -L https://get.rvm.io | bash -s stable --ruby % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed ...

    TortoiseSVN-1.14.6.29673-x64-svn-1.14.3

    1.安装客户端 2.安装语言包 3.设置语言中文简体(不知道怎么设?度娘) ...互联网上很多版本控制服务已从CVS迁移到Subversion。说得简单一点SVN就是用于多个人共同开发同一个项目,共用资源的目的。

    开源分布式版本控制工具—Git之旅

    不过,也有人质疑Git的复杂性,并由此拔高了学习成本,某种程序上影响了开发者使用或者迁移Git的项目进度,笔者同样感同身受,这也是本文的出发点。不同于各种Git用法指南,本文在介绍Git安装、使用的同时,更加注重...

Global site tag (gtag.js) - Google Analytics