svn项目迁移到git 初探

一、从svn导出项目

使用命令(地址可以是svn开头,也可以是http,https):

git svn clone svn://xxx/project/iOS/Common --authors-file=usres.txt(可选) --no-metadata -s commom

可选部分是svn用户名与git用户名的一个映射文件,如:

schacon = Scott Chacon <schacon@geemail.com>

我这里没有做这一步,所以不多说。

'--no-metadata ':表示去掉与svn有关的信息。

'-s'表示所有trunk,branches,tags。如果不想要所有的,需要单独指定,但不保证不会出问题。

执行上面的命令后,我这边报错了,信息如下:

Using higher level of URL: svn://xxx/project/iOS/Common => svn://xxx/project

W: Ignoring error from SVN, path probably does not exist: (160013): Filesystem has no item: File not found: revision 100, path '/iOS/Common'

W: Do not be alarmed at the above message git-svn is just searching aggressively for old history.

This may take a while on large repositories

好像是说需要使用更高级别的URL,找不到/iOS/Common路径,虽然不知道具体什么原因,但还是找到了解决方法,替换成如下命令:

git svn clone svn://120.78.128.162/project/iOS/Common --no-metadata commom

添加了'--no-minimize-url '参数,意思是不缩小输入地址。

去掉了-s,这里有个问题是加入-s有时候可以,有时候却不行,不知道为什么。总之有问题两个都尝试一下。

至此,我们已经从svn将项目导出了,而且是去除svn信息的。这里你会在'common'文件夹看到项目内容。

二、将项目提交到git仓库

前提:我的仓库是公司私有的,且是直接在网站上已经创建了的(且有了初始导入)。所以这里有点绕圈子了,如果没有初始导入,那就很简单了。直接add后push就可以了。

首先,我得先将git上的项目先clone下来(虽然里面就一个readMe文件),使用如下命令:

git clone http://xxx.git(会将git项目clone到当前文件夹下)

然后将上面从svn导出的项目拖入git目录下。

之后就是添加并提交了:

cd git目录下

git add .

git commit -m "xxx"

git push

如果这种方式不成功,最便捷的方式是使用工具来操作。可以下载sourceTree工具,直接将项目拉到仓库里面,直接提交就好了。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 由于习惯了 GIT 版本管理,切回 SVN 落差太大.下面总结用 GIT 操作 SVN. 一.原理 1.本地仓库以...
    Jack0111阅读 2,928评论 0 1
  • 为了统一、规范开发流程,以及CICD的推进,将SVN整体迁移至git环境,需要将历史记录同步到git 本文参考了以...
    搁浅的三刀流zoro阅读 523评论 0 0
  • svn有很多优点,但是git的出现对svn的冲击的确很大,现在很多公司项目的都迁移的git上了,下面是我自己在做s...
    初xin工作室阅读 258评论 0 1
  • 前言 最近刚把公司项目从 SVN 迁移到了 Git 上,在这里做个记录。 数据迁移 执行上面的步骤就可以将 SVN...
    anyesu阅读 6,505评论 1 2
  • 小时候我曾无意间听到奶奶跟邻居聊天:“这日子咋过恁快呢,人哪,一眨眼就老了。”那时,我调皮地把眼睛眨了又眨,心想:...
    娜样年华_76b3阅读 225评论 0 1