我们正在测试使用 git 作为存储库系统,而不是我们的普通 svn。我们总是需要一个 svn 存储库。在 svn 中,我们将此存储库与 svn propset 链接为 svn:externals。这确保了该特定的、大量使用的存储库实际上只有一个全局副本。
现在我们有了 git 存储库,我想以与使用 svn:externals 基本相同的方式将 SVN 存储库链接到它。我在某种程度上成功地做到了这一点。我是git新手,请原谅任何无知。
在纯 git repo(我通过 克隆git clone gitmaster@address.org:mygitrepo
)中,我使用了:
git svn clone svn+ssh://svnowner@hostname.org/path/to/mysvnrepo mysvnrepo
获取另一个 svn 存储库的副本。这很好用,我可以git svn rebase
在 mysvnrepo 目录中获得对 SVN 存储库的新修订,并通过git svn dcommit
.
要将它与我使用的主 git 存储库结合起来:
git add mysvnrepo
git commit mysvnrepo
git push
我遇到的问题是,如果我现在将 git repo 克隆到其他地方(再次使用git clone gitmaster@address.org:mygitrepo
),当我获得包含所有文件的 mysvnrepo 目录时,我无法与 SVN repo 交互。在 git svn rebase 之后出现错误:“无法从工作树历史记录中确定上游 SVN 信息”。可能相关的是,当我在别处克隆它时,mysvnrepo 目录中没有 .git 文件夹(这是 svn 信息存储在原始仓库中的位置)。
我已经对这个问题进行了一些搜索,但是所有对它的引用似乎首先让 svn repo 工作有问题,而我的问题是让它为另一个用户工作。
也许我的问题是如何成功地将 svn 存储库添加/提交/推送到 git 存储库?即是:git add mysvnrepo; git commit mysvnrepot; git push
; 正确的方法是什么?
编辑:改进以提供更多上下文