首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >git捆绑包,带git-svn

git捆绑包,带git-svn
EN

Stack Overflow用户
提问于 2013-02-28 11:27:51
回答 1查看 581关注 0票数 2

我正在尝试将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存储库,它将是只读的。在离线方面,我们将对远程分支进行分支,并在那里提交。

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-02-28 12:17:01

尽管git svn最初设置了svn分支显示为远程,但可以通过更改用于创建分支的refspec来更改。但是,这应该在从svn存储库获取任何内容之前完成。

代码语言:javascript
复制
git svn init --stdlayout http/svn.server/path svnclone
cd svnclone
edit .git/config

然后更改fetchbranches行,可能还有tags行,如下所示:

代码语言:javascript
复制
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命令),就不会有问题。不过,如果有一个名为mastertrunk的svn分支,可能会有问题。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15126889

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档