我有一个SVN存储库的GIT克隆。根据{{3}}的 CAVEATS 部分,我似乎无法再次克隆此git存储库:
为了简单和与Subversion互操作,建议所有git svn用户直接从SVN服务器克隆,获取和dcommit,并避免所有 git clone / pull / merge / push < / strong> git存储库和分支之间的操作。
我希望我可以将这个GIT存储库分享给其他用户,而这些用户又可以直接向svn提交。这似乎是一个很大的限制,因为每个其他用户都需要重新注册SVN存储库或使用同一页面上建议的rsync
。
所以第一个问题是 - 我能正确理解吗?
其次,有人能举例说明这一段的含义吗?我完全迷失了:
因此,您必须确保要提交的分支的最新提交是合并的第一个父级。否则会发生混乱,特别是如果第一个父级是同一SVN分支上的旧提交。
答案 0 :(得分:2)
您可以使用GIT克隆GIT-SVN存储库,但实际上您需要注意几个警告。我有适度的GIT经验,并且自己一直在使用这样的设置,YMMV虽然......
您可以克隆GIT-SVN存储库,但是(每次克隆一次)需要将git-svn配置添加到.git/config
。
此外,当你git-svn dcommit时,这会修改提交的SHA1总和,所以如果你通过git-svn镜像获取它们,你的本地git checkout会合并两个稍微不同的分支。要解决此问题,您可以运行
git reset remotes/origin/master
假设您从主分支中提交,并且git-svn镜像标记为origin。
另外我注意到有时git-svn dcommit失败了,我无法直接回忆起错误,但可以通过删除相关的git-svn rev-map来解决
.git/svn/refs/remotes/*/.rev_map.*
它将由git-svn自动重建。