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

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

'--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工具,直接将项目拉到仓库里面,直接提交就好了。

你可能感兴趣的:(svn项目迁移到git 初探)