SVN 通过
svn:external
功能提供外部源链接。我正在使用 Git 存储库中的模块。我可以使用这个 Git 存储库作为外部源吗?
我的模块 Git 存储库位于 Github 中。所以Github具体方式也欢迎。
Github 宣布支持 SVN。 https://github.com/blog/626-announcing-svn-support
我直接将我的 Github 存储库添加为
svn:external
。
Github 上的存储库可以充当 Subversion 存储库。请参阅这篇关于改进的 SVN 支持的博客文章。虽然看起来很慢,但是确实有效。
更新 GitHub 上的 Subversion 支持已于 2024 年 1 月结束。
将 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 之间的概念冲突可能会导致问题。
只需使用以下 URL 从 GitHub 获取 tarball 或 zipball:
https://github.com/UserName/ProjectName/zipball/master
或者如果您更喜欢 tarball:
https://github.com/UserName/ProjectName/tarball/master
它们是压缩的代码快照。