原项目使用git管理. 因为各种原因需要提交到svn库.参考资料
- 创建svn库
svn co http://svn.example.com/foo
cd myproj
svn mkdir trunk
svn commit -m'Created trunk directory'
或者直接在现有的repository上创建目录
svn mkdir --parents http://url/dir_name --message "messages"
- 设置svn远程库
2.1 clone git项目
git clone ~git/repositories/foo/mainline.git ~git/repositories/svn-mirror/foo
cd ~git/repositories/svn-mirror/foo
2.2 在.git/config中添加svn-remote
[svn-remote "svn"]
url = http://svn.example.com/foo/trunk
fetch = :refs/remotes/git-svn
- 提交项目到svn库
3.1 从空的svn远程库中做初始化fetch,并将其作为一个新分支checkout
git svn fetch svn
git checkout -b svn git-svn
3.2 将master分支merge进svn分支并提交到svn库
merge时发生 fatal: refusing to merge unrelated histories
错误, 可加 --allow-unrelated-histories
git merge master
git svn dcommit
- rebase到svn分支以便从master版本推送到svn库
git checkout master
git rebase svn
git branch -d svn