我正在尝试将git-bundle与git-svn存储库一起使用。实际上,我需要创建一个离线git repo,其中包含我们的生产SVN系统的克隆。SVN存储库是通过git-svn克隆的,这非常有效。它克隆我们的代码,并将其列在remotes/*下。
现在是最难的部分。我需要让它与我们的离线存储库保持同步。离线环境不能访问internet,并且只能通过单向方法(例如,cd等)。这只是一种单向交易。我想用git-bundle来做这件事。问题似乎归结为这样一个事实: git-svn将svn存储库标记为远程。我曾尝试使用git bundle create ____.bundle --all...it works查看捆绑包,但它只包含我的主人。它不包括远程引用。然而,我需要获得所有这些信息。
这有意义吗?有什么建议/建议吗?应该明确的是,我们不会提交到SVN端的git存储库,它将是只读的。在离线方面,我们将对远程分支进行分支,并在那里提交。
谢谢!
发布于 2013-02-28 12:17:01
尽管git svn最初设置了svn分支显示为远程,但可以通过更改用于创建分支的refspec来更改。但是,这应该在从svn存储库获取任何内容之前完成。
git svn init --stdlayout http/svn.server/path svnclone
cd svnclone
edit .git/config然后更改fetch和branches行,可能还有tags行,如下所示:
fetch = trunk:refs/heads/trunk
branches = branches/*:refs/heads/*
tags = tags/*:refs/tags/*如果svn仓库没有使用标准布局,您可以像往常一样在git svn init调用中指定它。在这种情况下,您可能希望将上述代码行的部分保留在冒号之前,因为它们只更改冒号之后的部分。
一旦你有了这个设置,你就可以使用git svn fetch来实际复制内容。由于分支进入refs/heads名称空间,因此包含bundle命令的git会将它们视为本地分支。只要该克隆仅用作其他克隆的源(通过bundle或仅使用clone命令),就不会有问题。不过,如果有一个名为master或trunk的svn分支,可能会有问题。
https://stackoverflow.com/questions/15126889
复制相似问题