时代有时候也是会倒退的,但是我们要拥抱未来.

把 SVN 中的内容全部迁移到 GIT 中

那么让我们开始吧

1. 整理一份提交者名单

svn log --xml svn-addr | grep author |sort -u | perl -pe 's/.>(.?)<./ = /' >>users.txt
svn log --xml . | grep author |sort -u | perl -pe 's/.>(.?)<./ = /' >>users.txt

2. 建立对应关系 修改格式为下面这样

wangchunye = 王春烨 wangchunye@pwrd.com

3. 从 SVN 最拉取所有历史

git svn clone svn-addr --authors-file=users.txt --no-metadata git-storage

如果是默认 svn 布局的 (branches/tags/trunk),可以增加参数 –stdlayout

4. 使用 git 更新

git svn fetch


调皮的分割线

使用 SVN 和本地 GIT 仓库协同工作

这一节解决的问题是如何在本地建立一个GIT仓库,远端是SVN,可以在本地享受便利的 branch, commit, reset, rebase, stash 操作. 还可以把 commit 提交到SVN中去.

git-svn

1. Clone SVN仓库到 本地GIT仓库中

git svn init -s svn://xxx/
git svn fetch -rXXXX:HEAD

2. 拉取远端的提交到本地GIT仓库

git svn fetch
git svn rebase

3. 提交到本地

正常 git commit 即可

4. 推送到远端

git svn dcommit

5. 如果只想提交一部分到远端怎么办

git checkout -b new_branch
git checkout master
git reset --hard c2
git cherrypick c6
git cherrypick c7
git svn dcommit

支付宝打赏 微信打赏

您的打赏是对我最大的鼓励!

linzhanyu


Linux, VIM, OpenGL, OpenCL.

Python, C++, C#, ML.

相看莫相笑,同是竹林人。