svn - 如何在我的 git 项目中包含外部 svn 存储库?

标签 svn git svn-externals

我正在使用 git 作为项目的版本控制软件。我的项目需要使用第 3 方代码库,它使用 SVN 用于其版本控制软件。 (在这种情况下,第 3 方代码是一个名为 Yii 的 PHP 框架,并不是说它与问题非常相关)。

有没有办法在 git 中设置外部依赖关系,以帮助从外部 SVN 存储库中提取代码并保持最新?

如果我的项目使用的是 SVN,那么设置起来会很简单,因为我会这样做:

> svn propset svn:externals yii-1.1.6 https://yii.googlecode.com/svn/tags/1.1.6/framework

...然后,每当我执行 svn checkout(或 svn update)时,我都会将 yii 代码库提取到名为“ 的本地文件夹中yii-1.1.6”。我可以在 git 中做类似的事情吗?有没有人在我可以复制的公共(public) github 存储库中有示例?我确定这一定是一种普遍需求?

最佳答案

您可以对您的 svn 存储库进行 git-svn 克隆,然后将该存储库包含到您的主 Git 存储库中,将其声明为 submodule .

请记住:git 子模块与 svn 子模块不兼容,因为它们总是引用固定版本。见:


但是,正如我在“git submodule tracking latest”中提到的,自 git 1.8.2(2013 年 3 月)以来,您可以通过子模块跟踪 repo 的最新分支

$ git submodule add -b <branch> <repository> [<path>]
$ git submodule update --remote ...

关于svn - 如何在我的 git 项目中包含外部 svn 存储库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5344990/

相关文章:

svn - 在没有 URL/Subversion 后端的情况下将 Fogbugz 与 TortoiseSVN 集成

svn - 合并/不合并 svn 标签的最佳实践

git - 错误 : Cannot Spawn C:\Path To\TortoiseGit\Bin: No such file or directory

git - 尝试通过 SSH 进行 git clone 但出现管道损坏错误

git - Jenkins "Error cloning remote repo ' 起源 '"and "无法分配内存”

java - 在 Eclipse 中设置 SVN

linux - 好的 Linux (Ubuntu) SVN 客户端

svn - 更新整个项目的根目录时,如何排除 svn externals 的更新?

svn - Unity *.meta 文件、SVN 和外部共享存储库

svn - SVN 中不可修复的混合修订工作副本