在Subversion存储库中Git工作副本

时间:2011-06-14 18:06:24

标签: svn git

我有一个项目正在运行,我们使用Subversion来控制所有内容。但是,我们有一个特定项目的客户端,他使用Git来检查并放入我们的项目存储库。通常我会查看Git仓库,将其导出到我的SVN工作副本,版本文件,并完成它。然而,这个人经常更新这个代码,我需要留在他所在的地方。

如果我将Git存储库签出到我的SVN工作副本并对文件进行版本化会怎么样?

注意 Git-svn不是一个选项,我从未使用它,很遗憾我没有时间为此学习新东西。

3 个答案:

答案 0 :(得分:2)

只需克隆Git仓库。没有什么不好的事情会发生,你可以通过git update来更新代码。您可以安全地将git repo提交到subversion中,我之前已经完成了。

答案 1 :(得分:1)

这没有任何技术问题,但最终会很麻烦。每次进行更改时,都需要将其提交给Git,然后将在Git存储库中创建的所有新文件添加到Subversion,然后将所有这些文件提交给Subversion。当你合并他的任何改变时,你也需要做所有这些。

我有一个问题是你为什么要这样做;你在Subversion中获得了什么好处?如果您需要将更改与其上游存储库合并,那么无论如何您都需要学习Git。此时,您可能只是使用Git来进行版本控制,而不是通过尝试与Subversion集成来使事情复杂化。如果你只是要给他发送最终代码,并让他整合它,那么为什么还要费心检查Git repo进入Subversion?只要做你通常做的事情,检查当前的副本到Subversion,处理它,然后在你完成后将结果发送给他。

如果代码的官方上游副本在Subversion中,

git-svn会很有用,但是你想使用Git来处理它,因为你更喜欢Git。当你想使用Subversion工具时,使用Git管理的上游项目并不是那么有用。

答案 2 :(得分:0)

你提出的解决方案应该像git和svn一样有不同的元文件,只要你不将一个版本控制系统的元文件添加到另一个版本控制系统中,它们之间就没有冲突。

但请注意,无论何时更改文件,都必须将它们添加到git和subversion中,因此您必须处理两个不同的文件控制系统。

正如您提示的那样,使用git-svn可以帮助您,因为它只允许您使用git,然后使用git-svn与您的中央svn repo同步。我在工作中这样做,这很简单,它完美无缺(大部分时间)。我会考虑学习它,我是你。无论如何,你必须学习git才能有效地与客户一起工作,学习git-svn相对简单。你基本上只有三个命令:

  • git svn fetch - 获取对repo的最新svn更改
  • git rebase git-svn - 合并svn更改
  • git svn dcommit - 提交到svn repo

学习git是值得的,因为最后,我发现它远远优于svn。