Git/SVN 互操作(保留两个存储库的历史记录)
我正在为一个应用程序开发一个软件模块,该应用程序由客户拥有,采用基于 SVN 的开发流程。到目前为止,我一直在使用自己的 Git 存储库来完成此操作。
现在,该模块已经足够成熟,可以成为客户端 SVN 树的一部分。我过去做过一些基于 git-svn 的工作,但从来没有使用两个最初独立的存储库(git 部分始终是从 SVN 获取的克隆)。
是否可以将独立的 git 存储库“注入”到 Subversion 存储库中,并让他的历史记录成为 SVN 存储库的一部分?之后,应该会在 SVN 之上使用 git-svn 进行“正常”工作。
I'm developing a software module for an application, owned by a customer with SVN-based development process. Up to now, I have been used my own Git repository in doing so.
Now, the module is mature enough to become part of the clients SVN tree. I did some git-svn based work in the past, but never with two initially independent repositories (the git part was always a clone taken from SVN).
Is it possible to 'inject' a standalone git repository into a Subversion repository and let also his history become part of the SVN's repo? After that 'normal' work with git-svn on top of SVN should follow.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我建议如下:
git svn clone
Subversion 存储库将现有的 git 存储库添加为远程存储库(我们称之为
mod
)在 git-svn 存储库中将
将模块工作提取到 git-svn 存储库中并签出到新分支:
git fetch mod && git checkout mod/master -b mod-svn
使用
git svn rebase
根据 subversion 的最新版本重新设置该分支的基准。此时,您应该拥有 Subversion 中的所有内容以及所有模块工作的线性历史记录。git svn dcommit
将模块工作保存到 SubversionI would suggest the following:
git svn clone
the Subversion repositoryAdd your existing git repository as a remote (let's call it
mod
) in the git-svn repoFetch your module work into the git-svn repo and checkout into a new branch:
git fetch mod && git checkout mod/master -b mod-svn
Rebase that branch against the latest from subversion with
git svn rebase
. At this point you should have a linear history with everything from Subversion followed by all your module work.git svn dcommit
to save your module work into Subversion