如何将git存储库用作svn:external?

时间:2011-12-05 06:06:10

标签: git svn external git-submodules

SVN通过svn:external功能提供外部源链接。我正在使用Git存储库中的模块。我可以将此Git存储库用作外部源吗?

我的模块Git存储库在Github中。所以Github的具体方式也很受欢迎。

3 个答案:

答案 0 :(得分:3)

Github宣布支持SVN。 https://github.com/blog/626-announcing-svn-support

我直接将我的Github存储库添加为svn:external

答案 1 :(得分:2)

Github上的存储库可以像Subversion存储库一样工作。见this blog post about their improved SVN support。它似乎很慢,但它确实有效。

将git存储库放入SVN存储库的另一个解决方案是在嵌套的存储库目录中设置svn:ignore并使用Makefile来克隆和更新git存储库。

cd svn-repository
svn propset svn:ignore gitdir .

然后对您的Makefile或其他构建系统执行类似的操作。

GITREPO=git://github.com/schwern/perl5i.git
GITDIR=gitdir

all : $(GITDIR)

$(GITDIR)/.git :
    git clone $(GITREPO) $(GITDIR)

$(GITDIR) : $(GITDIR)/.git
    cd $(GITDIR) && git pull

首先调用make将克隆git存储库。后续调用将进行更新。

我更喜欢这个解决方案。它不依赖于Github上的git存储库,也不依赖于仿真。 git存储库可以作为git存储库工作,而不必经过仿真,其中git和SVN之间的冲突概念可能会导致问题。

答案 2 :(得分:0)

只需使用以下网址从GitHub获取tarball或zipball:

https://github.com/UserName/ProjectName/zipball/master

或者如果您更喜欢tarball:

https://github.com/UserName/ProjectName/tarball/master

它们是代码的快照,已压缩。