这可能不寻常,所以让我设置场景:
我们有一个SVN repo,包含我们的项目历史 - 一个基于Linux的嵌入式系统.SVN repo包含Linux内核,U-Boot,busybox等源以及我们所有的内部应用程序,文件系统等.
我们拥有的Linux内核已经老旧而且我正在努力移植到主线,主线正在积极开发我们的平台.我正在git下进行内核方面的工作,并与"社区"交换补丁.
我可以让事情工作并获取内核源代码的快照并将其转储到SVN中,但我希望能够获得更新,拥有本地分支并使用git管理补丁.我可以保留两个内核副本,一个由每个SCM管理,但这有点乱.使用git管理的内核源进行开发和测试也存在风险,并且忘记将这些更改放入SVN导致SVN版本损坏,其中非内核源不同步.
将整个项目迁移到git不是一种选择.使用git管理内核源代码并在SVN中使用一堆粘合脚本和存储的哈希是可能的,但是对于整个项目来说,从SVN获得统一的历史/差异化能力会更好.
我正在考虑的是尝试在同一目录中同时管理SVN和git下的内核源代码.
作为内核开发人员,我主要使用git并在事情看起来很好的时候做内部使用的SVN提交.对于其他内部用户,他们可以通过一个SVN签出获得整个一致的源,查看统一的历史记录,他们可以在SVN下对内核源进行更改.后来我或其他git-using人可以SVN更新这些更改并将它们提交给适当的git.
一些有趣的方法是让git忽略.svn文件,反之亦然.另外我不太确定如何使用普通的SVN结账并告诉git开始管理内核子树,但我确定git有一些不起眼的瑞士军刀选项来做到这一点.
所以这就是我的想法.这意味着大多数同事不必担心git,我们可以根据需要悄悄地忽略git和fork.
这里的问题确实是,有没有人做过这样的事情,它是如何运作的,或者你提出了什么替代解决方案?
| 归档时间: |
|
| 查看次数: |
581 次 |
| 最近记录: |