SVN到Git的迁移
来源:互联网 发布:redis zadd json 编辑:程序博客网 时间:2024/04/29 04:30
!/bin/bash
#SVN到Git的迁移,网上有很多代码,ProGit这本书上也有,但是,尝试过之后,有些项目是可以完整映射过去但是有些不行。在使用ProGit上的代码时,会提示没有找到.git/refs/remotes/tags/文件,这是一个例子,很多情况是这样,然后进入git svn clone的文件夹下面命令 git branch -a 是可以看到 .git/refs/remotes/tags/ 其中*号对应相关的tag。经过测试下面的代码可以达到这些功能:每次提交的作者,以及注释,都可以保存,但是邮箱的名字不能完全保存,只能保存邮箱的用户名。所有的branch,trunk,tags都完全映过去。#
还有不要首先推送tag,如果先推送tag就会在GitLab出现500错误,但是可以看到确实推送成功。可能是基于现有branch后才有tag的逻辑。这里我只是猜测。可能Git可以检测出来不符合逻辑。
proname=projectname
git svn clone http://yoursvnrepository/$proname/code/trunk #here proname
cd trunk
git remote add origin git@servername:louis/$proname.git #here proname
git push -u origin master:master
cd ..
rm -rf trunk
git svn clone http://yoursvnrepository/$proname/document/ #here proname
cd document
git remote add origin git@servername:louis/$proname.git #here proname
git push origin master:document
cd ..
rm -rf document
for i in tag1 tag2 tag3 #here put tags name
do
git svn clone http://yoursvnrepository/$proname/code/tags/$i
cd $i
git remote add origin git@servername:louis/$proname.git #here replace with real project name
git tag -a "$i" -m "commit $i"
git push origin $i
cd ..
rm -rf $i
echo "tag $i transferred"
done
for j in branch1 branch2 branch3#here put branches name
do
git svn clone http://yoursvnrepository/$proname/code/branches/$j
cd $j
git remote add origin git@servername:louis/$proname.git #here replace with real project name
git push origin master:$j
cd ..
rm -rf $j
- SVN到Git的迁移
- SVN 迁移到 Git
- svn迁移到Git
- SVN 迁移到GIT
- SVN迁移到git
- svn迁移到git
- SVN迁移到Git的过程
- 从SVN到GIT迁移
- 从SVN迁移到GIT
- svn迁移到git实践
- svn迁移到git实践
- 从 SVN 迁移到 Git
- 本地svn迁移到git
- SVN如何迁移到Git?
- SVN如何迁移到Git?
- SubGit 1.0 发布,SVN 到 Git 的迁移工具
- SVN迁移到Git的过程(+ 一些技巧)
- SVN迁移到Git的过程(+ 一些技巧)
- EL和OGNL区别
- IOS 代码动态添加控件
- 搭建jboss服务
- Amazon UI 学习笔记
- HD 1213 How Many Tables 【并查集】
- SVN到Git的迁移
- Rust中文翻译34
- jQuery动态加载css文件
- Android Volley完全解析(一),初识Volley的基本用法
- ScrollView/ListView 如何去掉下拉到顶部时出现的黑色阴影
- B. Pasha and Tea( Codeforces Round #311 (Div. 2) )
- 解决Deprecated: mysql_connect(): The mysql extension is deprecated and will be removed in the future:
- 使用jquery easyui datetimebox 设置默认时间
- HDU 4463 Outlets (prime_杭州区域赛水题)