从 git 推送到 subversion 存储库

Posted

技术标签:

【中文标题】从 git 推送到 subversion 存储库【英文标题】:Pushing from git into a subversion repository 【发布时间】:2013-04-05 18:33:14 【问题描述】:

我的工作在 git 存储库中,我的一些同事希望将其合并到他们的 subversion 存储库中。我将继续使用 git,但最好有一个 subversion repo 作为远程,我可以偶尔推送一次。

我不打算退出它。如果这是可行的,我们将理解,从我的角度来看,颠覆遥控器是只写的,而从他们的角度来看是只读的。他们已经可以访问 git 存储库,并且无论如何都会在那里工作(是的,这有点荒谬,但我无法改变)。

这是 git-svn 可以处理的吗?

【问题讨论】:

【参考方案1】:

是的。如果您使用git-svn 设置SVN 远程,您可以随后使用dcommit 随意将更改推送到它,无限期。如果你想强制执行只有你可以推送到 SVN repo 的工作流,可以使用 Subversion 的访问控制机制来实现;例如,见How to setup access control in SVN?。

由于默认情况下dcommit 会重新设置您从中更新 SVN 的 Git 分支,因此您应该考虑维护一个本地分支以将更改发布到 SVN。最简单的情况是 SVN 存储库只需要接收来自 master 的提交而不尝试跟踪合并。

【讨论】:

但请注意您在git 方面可以执行的操作的限制! git 能做的很多事情都无法在 SVN 中表达。 确实如此。如果您的工作流程包含大量合并,解决此问题的一种方法是维护一个单独的本地分支,该分支仅用于推送到 SVN 存储库中的 trunk。然后,您可以定期将更改合并到该分支中,然后是 dcommit,默认情况下这也会重新设置 Git 分支。

以上是关于从 git 推送到 subversion 存储库的主要内容,如果未能解决你的问题,请参考以下文章

如何从本地 Windows 存储库推送到 Windows git 远程服务器

如何将本地更改推送到 Bitbucket 上的远程 Git 存储库

通过 HTTPS 从 Eclipse 推送到我的 GitHub 存储库停止工作:“git-receive-pack not allowed”错误

通过 HTTPS 从 Eclipse 推送到我的 GitHub 存储库停止工作:“git-receive-pack not allowed”错误

通过 HTTPS 从 Eclipse 推送到我的 GitHub 存储库停止工作:“git-receive-pack not allowed”错误

通过 HTTPS 从 Eclipse 推送到我的 GitHub 存储库停止工作:“git-receive-pack not allowed”错误