更新git-svn git镜像而不重新下载所有内容

时间:2013-11-21 09:34:45

标签: git svn version-control github git-svn

我使用

创建了一个svn存储库的git镜像
    git svn clone svn://svn.svnrepo.com

我将它上传到github并且能够使用

更新本地仓库
    git svn rebase svn://svn.svnrepo.com

并将更新推送到github

在我删除本地副本后,我想再次更新遥控器

所以我克隆了git repo

    git clone git://git.gitrepo.com

但是当我试图改变时,我得到了一个错误

    git svn rebase svn://svn.svnrepo.com

    Data from a previous version of git-svn exists, but

    (required for this version (1.8.3.2) of git-svn) does not exist.

    Done migrating from a git-svn v1 layout

然后它给出了无法从HEAD历史错误确定上游SVN信息

我试过了:

    git svn init svn://svn.svnrepo.com

使用:

    git svn fetch

但是开始重新下载整个svn repo,需要24小时 当前的svn修订版在提交日志中标记为git-svn-id,看起来很好,如何停止git svn fetch从重新获取已存在的文件或重新绑定它而不重新下载?这个镜像从未提交过使它与svn upstream不同的提交。

1 个答案:

答案 0 :(得分:2)

只需要运行以下命令

git config svn-remote.svn.url $SVN_URL
git config svn-remote.svn.fetch :refs/remotes/git-svn
svn2git --rebase

或者您也可以手动修改.git/config以添加svn-remote部分:

[svn-remote "svn"]
    url = SVN_URL
    fetch = :refs/remotes/git-svn

从现在开始svn2git --rebase

-

PS:我的消息来源: