April
16th,
2017
调皮的分割线
时代有时候也是会倒退的,但是我们要拥抱未来.
把 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中去.
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
您的打赏是对我最大的鼓励!