主要观点:作者多次在博客中介绍 Git,认为其比 CVS 和 SVN 更高效、更轻松,现继续介绍如何将 SVN 仓库转换为 Git 仓库并省略旧的(不相关的)修订和分支。
关键信息:
- 过去使用 JBoss Tools 和 JBoss Developer Studio 的 SVN 仓库时,磁盘空间占用大且需网络访问拉取历史文件。
- 起初使用 git-svn 拉取 JBDS 仓库到本地 Git 仓库速度慢且 JBoss Tools 仓库太大无法创建。
- 最近发现通过标准布局(-s)和修订过滤器(-r)可改善 git-svn 体验,使磁盘占用变小、性能提高且无需全克隆或 svn 检出,只需复制现有 Git 仓库并重新定位到不同分支。
重要细节: - 计算分支创建时的修订号:
rev=$(svn log --stop-on-copy http://svn.jboss.org/repos/jbosstools/branches/jbosstools-3.2.x | egrep "r[0-9]+" | tail -1 | sed -e "s#(r[0-9]+).+#-\\1:HEAD#")
- 克隆 SVN 仓库:
git svn clone -s $rev http://svn.jboss.org/repos/jbosstools jbosstools_GIT
- 列出本地和远程分支:
git branch -a
- 切换分支:
git checkout -b local/jbosstools-3.2.x jbosstools-3.2.x
,git checkout -b local/trunk trunk
- 重新定位更改:
git svn rebase
- 从 SVN 仓库获取更新:
git svn fetch
- 在 SVN 中创建新分支:
svn copy http://svn.jboss.org/repos/jbosstools/branches/jbosstools-3.2.x http://svn.jboss.org/repos/jbosstools/branches/some-new-branch
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。