我有一个相当大的 svn 集中式存储库,我们与我的团队一起使用。现在我想在本地使用 git(-svn),所以我做了一个 git-svn 克隆。这工作正常,但 git-svn 克隆需要很长时间才能完成。相比之下,一个 git clone 通常不需要那么长时间。
同事如何复制我的 svn 克隆,这样他就不需要再次检查和转换整个 svn 历史记录?即不与svn交互。
当然,我们希望同事能够使用他自己的凭据执行 fetch 和 dcommit 到中央 svn 存储库。
谢谢。
我有一个相当大的 svn 集中式存储库,我们与我的团队一起使用。现在我想在本地使用 git(-svn),所以我做了一个 git-svn 克隆。这工作正常,但 git-svn 克隆需要很长时间才能完成。相比之下,一个 git clone 通常不需要那么长时间。
同事如何复制我的 svn 克隆,这样他就不需要再次检查和转换整个 svn 历史记录?即不与svn交互。
当然,我们希望同事能够使用他自己的凭据执行 fetch 和 dcommit 到中央 svn 存储库。
谢谢。
总之,这个过程很脆弱,不推荐。请参阅git svn 手册页,注意事项部分:
为了简单和与 Subversion 互操作,建议所有 git svn 用户直接从 SVN 服务器 clone、fetch 和 dcommit,并避免 git 存储库和分支之间的所有 git clone/pull/merge/push 操作。在 git 分支和用户之间交换代码的推荐方法是 git format-patch 和 git am,或者只是“dcommit”到 SVN 存储库。
所以想要使用的每个人都git svn
应该从 SVN 服务器克隆他/她自己的副本。
另一个解决方案是使用SubGit,它将为您提供一个到存储库的 git 桥,您可以与 SVN 互换使用:
SubGit 是一个平滑、无压力的 Svn 到 Git 迁移的工具。在服务器端安装一次,然后根据需要同时使用 Subversion 和 Git。
SubGit 允许设置双向 Subversion 到 Git 复制(可写镜像)。访问文档页面以获取更多信息。
根据添加到问题和其他答案的评论:
可以只(物理地)复制 git 存储库(或 tar/zip 副本,或者如文档中所说的 rsync)。
我测试了这个解决方案,事实上,在另一台机器上,与 svn 的连接是使用该机器的 svn 凭据执行的,而整个历史记录只是在几秒钟内被复制。