svn迁git保留commit记录

svn to git

一.使用svn2git工具

1.yum install -y ruby git git-svn(配置epel源)
2.gen install svn2git
3.svn2git http://10.6.60.40/svn/XXXX/SourceCode --notrunk --authors /root/users.txt --branches=06platform --branches=06platform/inttest --notag
#如果在分支下还有子目录需要作为分支,使用--branches参数指定path(--branches=06platform/inttest)
4.处理多余分支(git branch -d/-D branch)
5.处理目录(处理目录后需要 git commit、git add、git commit)
6.git remote add origin [email protected]:CoreProjectNew/business/frontend.git
7.git push origin --all


二.使用 git svn clone

迁移准备:映射用户文件
1.git svn clone http://10.6.60.40/svn/XXXXSourceCode --authors-file=/root/author.txt --branches=26prpins prpins
2.git checkout -b inttest inttest(处理远程分支为本地分支)
3.git branch -d/-D branch(处理多余分支)
4.处理目录(处理目录后需要 git commit、git add、git commit)
5.git remote add origin [email protected]:CoreProjectNew/business/frontend.git
6.git push origin --all

参数说明:

http://10.6.60.40/svn/XXXX/SourceCode #svn仓库地址
--authors-file #映射用户文件
--branches #分支
prpins #项目dir name


迁移过程中因为项目过大或svn服务器不稳定等导致中断,可以使用git svn fetch 更新远程分支

1.cd project/
2.git svn fetch

错误记录:

svn2git工具可能会发生未知错误

1.W: Ignoring error from SVN, path probably does not exist: (160013): Filesystem has no item: File not found: revision 100, path ‘/SourceCode/25zyicloan‘

解决:这个可能是找不到历史版本导致的,最好指定--revision参数

2.RA layer request failed: REPORT of ‘/svn/XXXX/!svn/me‘: Could not read chunk size: connection was closed by server (http://10.6.60.40) at /usr

解决:遇到这种读取块失败被迫关闭连接,使用git svn clone ,可能是网络等原因导致

3.Author: xx not defined in users.txt file

解决:这个就是保留commit记录用户映射不全,加入users.txt就好了,在做映射时从svn库获取全部用户就行

帮助:

https://help.github.com/articles/source-code-migration-tools/ (github help) 这里详细说明了标准库和非标准库迁移

原文地址:http://blog.51cto.com/674564591/2164060

时间: 2024-10-08 15:28:36

svn迁git保留commit记录的相关文章

Git保留提交记录的迁移

日常中,可能会有这种情况,项目由外包公司做的,开发时,代码托管在外包公司的服务器上,方便外包人员的管理. 后面,可能合作关系终结,此时,我们需要把代码,迁移到自己的服务器上,或者放在 开源中国(代码并非开源)上进行托管. 问题来了:只上传代码的话,代码是没有灵魂的,还想保留别人的一步一脚一脚印(提交记录). 具体操作如下: 1>从原地址克隆一份裸版本库 git clone –bare git://github.com/username/project.git 2> 然后到新的 Git 服务器上

将代码库从 SVN 迁移至 Git 并保留所有 commit 记录

公司内部原本使用 SVN 进行版本控制,但随着 Github 的流行我个人的代码管理习惯逐渐转变.虽然公司项目并非开源,SVN 所具有的标准 trunk / branches / tags 结构完全够用,使用 Git 仍然有如下优势: 类似 GitHub 的 GitLab 免费管理工具.将代码托管在自己内部服务器上的同时,提供了优美的 web 界面,图形化分支结构,更直观的代码审查,统计.issue 系统.wiki 等功能全面集成. 更方便主程做 code review,控制代码质量.创建主仓库

梳理版本控制器:SVN和Git比较

在日常运维工作中,经常会用到版本控制系统,目前用到最广泛的版本控制器就是SVN和Git,那么这两者之间有什么不同之处呢?今天在此详细记录下: SVN(Subversion)是集中式管理的版本控制器,而Git是分布式管理的版本控制器!这是两者之间最核心的区别. Git不仅仅是个版本控制系统,它也是个内容管理系统(CMS),工作管理系统等.如果你是一个具有使用SVN背景的人,你需要做一定的思想转换,来适应Git提供的一些概念和特征. 先来说说集中式版本控制系统: 版本库是集中存放在中央服务器的,而干

svn与git的区别

这篇主要是谈谈两者的区别,至于谁优谁劣看官自己思考吧! 把第一条理解到位思想到位了做起来才会有的放矢,其他几条都是用的时候才能体会到 1) 最核心的区别Git是分布式的,而Svn不是分布的.能理解这点,上手会很容易,声明一点Git并不是目前唯一的分布式版本控制系统,还有比如Mercurial等,所以说它们差不许多.话说回来Git跟Svn一样有自己的集中式版本库和Server端,但Git更倾向于分布式开发,因为每一个开发人员的电脑上都有一个Local Repository,所以即使没有网络也一样可

命令行操作svn和git和git

前几天在写代码的时候电脑突然坏掉,老大交代的任务没完成,非常痛恨自己用svn或者git保存代码,相信很多程序员遇到过,硬盘坏掉,存在硬盘中的代码丢失,无法找回的问题,svn和git可谓程序员界的福音,那么问题来了,什么是svn和git呢? svn和git其实都是一种用来管理项目的控制版本工具,他们有很多好处,比如 1.防止代码丢失----可以把自己的代码上传到服务器上 2.适合多人开发----合并代码超级简单 3.能够进行版本回退 4.能解决冲突和bug 5.可以做分支 6.责任到人----可以

SVN和git的使用(附github的简单玩法)

今天简单的总结了下SVN和git的使用,也尝试了下github,应该好好提高下自己的英文水平了,梦想有一天不再使用任何翻译软件. [svn]:集中式的代码管理工具(版本控制工具--版本记录) 1>合并代码:团队操作2>版本覆盖 冲突3>删除的历史版本再使用4>遇到问题时追查提交人,明确责任 [tortoiseSVN]1>官网2>验证安装成功 电脑的任意地方鼠标右键查看有没有软件选项 使用: 1>本地代码,提交到服务器commit提交 2>从服务器把代码拉下来

iOS开发——开发实战篇&版本控制SVN和Git使用详解

版本控制SVN和Git使用详解 公司的实际开发中,在天朝使用较多的还是SVN,因为SVN是集中式的,在天朝上班你们都懂的! -----------------svn----------------- 一:最常用基本步骤--- 下载(完整下载,第一次),将服务器的项目下载到本地开始开发 svn checkout ip —uaerbane=? —password=?     //这里需要add 简:co 更新仓库,服务器项目有变动的时候需要更新到本地,以免错误或者冲突 svn updata    

版本控制之svn和git简述

参考: Pro git Svn book 1.6 TortoiseSVN-1.8.7-zh_CN 在一个团队的工作中,掌握版本控制系统的使用是对每一个工程师最基本的要求,作为刚入职的菜鸟我来说,更是需要快速掌握的,下面就简单记录一下svn以及git版本控制的基础知识. 1. 版本控制的概念 版本控制(Version Control)的含义就是通过某种方式来记录版本库中文件的内容变化,以达到管理和维护版本的开发.其实,我们在学习编程的时候就一直在使用版本控制的理念.例如,在学习C语言的时候,我们会

iOS开发- 版本控制SVN和Git使用详解

公司的实际开发中,在天朝使用较多的还是SVN,因为SVN是集中式的,在天朝上班你们都懂的! -----------------svn----------------- 一:最常用基本步骤--- 下载(完整下载,第一次),将服务器的项目下载到本地开始开发 svn checkout ip —uaerbane=? —password=?     //这里需要add 简:co 更新仓库,服务器项目有变动的时候需要更新到本地,以免错误或者冲突 svn updata               //这里的直