如何:部分克隆 SVN 仓库到 Git,并处理分支

主要观点:作者多次在博客中介绍 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.xgit 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
阅读 7
0 条评论