之前使用过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 ...
从SVN迁移到Git之后,项目开发代码继续在SVN提交,如何同步迁移之后继续在SVN提交的代码到Git
公司代码要从svn迁移到git,不想笨笨的重新上传一份新代码,于是研究了下svn代码到git的迁移同时还要保留commit信息,尝试了很久终于成功啦;在保留commit信息的同时,还能继续从svn同步代码到git,这样即使还有人...
然而,随着Git的普及,很多团队选择将原有的SVN项目迁移到Git。这个过程不仅涉及到代码的迁移,还需要保留SVN的提交历史记录,以便在新的Git环境中继续追踪和理解项目的演变。下面是一个详细的SVN项目迁移到Git的...
随着Git的普及,很多团队选择将原有的SVN项目迁移到Git。本篇将详细介绍如何将一个SVN项目平滑地迁移到Git,主要通过一个详细的方法三来演示整个过程。 首先,我们需要收集SVN中的人员信息,以便在Git中保留作者...
《从SVN迁移到Git的全面指南》 随着版本控制系统的发展,Git已经逐渐成为开发者社区的主流选择,而传统的...通过以上步骤,你可以顺利地将你的SVN项目过渡到Git,享受Git带来的高效协同和强大的版本控制功能。
在描述中提到,“svn2git是一个微型工具用来将Subversion上的项目迁移到Git上,并保留trunk...”,这表明该工具的核心功能是保持源代码历史的完整性和连续性,即使在转换过程中也是如此。在Subversion中,“trunk”...
有时,由于项目需求或团队偏好,我们可能需要将SVN仓库的代码迁移到Git仓库。本文将详细介绍如何在Windows和Linux环境下进行这一过程。 1. **获取SVN代码到本地** - 在Windows下,使用`svn checkout`命令将代码从...
使用场景包括但不限于项目需要与使用SVN的团队合作、迁移项目到Git但仍需保留与原SVN仓库的兼容性等。 在安装方面,Mac用户可以通过安装Xcode获得git-svn支持,而Linux用户可以使用包管理工具如apt-get进行安装。...
在软件开发过程中,团队可能需要将已有的Git仓库迁移到Subversion(SVN)仓库,以适应不同的协作环境或工具需求。这个过程涉及到多个步骤,确保Git中的所有代码、分支和历史记录都能完整地同步到SVN。下面我们将详细...
Subversion(简称svn)和Git都是这样的系统,但随着Git的普及,许多项目选择从svn迁移到git。本篇文章将详细探讨如何使用名为`svn2git`的工具进行这个迁移过程,并重点介绍与Python相关的部分。 `svn2git`是一个...
但是,在我现在正在工作的一些旧项目中,从svn到git的迁移非常困难或不可能。 Git有一组我通常使用的很棒的命令(例如隐藏),svn没有直接等效的命令。 svn-stash试图将git stash命令的某些功能移植到Subversion中...
它旨在提供一种将项目从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 checkout项目(如果本地已有,就无需check),命令行cd到目录下,执行 svn log --xml | grep ^<author> userinfo.txt 会输出一个userinfo.txt文件 linzhiji wanghongwei 接着编辑userinfo.txt文件,补充...
【标题】"RMS_OLD:高校科研管理系统 (由SVN迁移到Git)"指的是一个针对高校科研管理的软件系统,其开发过程中经历了从Subversion(SVN)版本控制系统到Git的迁移。这是一个重要的转变,因为Git在现代软件开发中已经...
根据提供的文件信息,我们可以得知这个Shell批处理脚本的目的是将数据从SVN(Subversion)版本控制系统迁移到GitLab。SVN和Git是两种流行的版本控制系统,它们用于管理源代码的变更。SVN是集中式版本控制系统,而Git...
SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理...互联网上很多版本控制服务已从CVS迁移到Subversion。说得简单一点SVN就是用于多个人共同开发同一个项目,共用资源的目的
- SVN迁移到GitLab时,完整历史记录的保留至关重要,因为它记录了项目的演化过程,对追踪问题和理解代码变更历史具有很大帮助。 - 迁移过程中要注意用户身份的映射,确保每个SVN提交都能对应到正确的GitLab用户。 ...
系统由svn迁移到git,意味着项目团队可能遇到了在SVN中协同开发效率不高的问题,或者为了适应更广泛的开发者工具链和社区实践,选择了更为流行的Git。Git的使用能够使得开发流程更加透明,多人协作更为顺畅,同时...