2016-07-27 124 views
0

我已将我的svn存储库迁移到本地开发人员计算机上的git存储库。所以主人现在正在跟踪svn主干。我希望svn trunk是git中的develop分支,我通过在git中重命名分支完成了这个分支。如何保持git与svn同步,同时能够更改git repo

我通过发布git svn fetchgit svn rebase来同步svn trunk中对git所做的更改。这工作非常好。

在svn的文件夹的结构,因此在混帐回购协议是如下

s-online/ 
    ├── .git 
    └── Online    
     ├── config 
     │   ├── build 
     │   ├── dataload 
     │   ├── export 
     │   ├── http 
     │   ├── search 
     │   ├── web 
     │   └── webservice 
     └── workspace 
      ├── data 
      ├── logic 
      ├── site 
      ├── stores 
      └── tools 

我要修改的文件夹结构在我的git回购看起来像下面的一个。因此,本质上,将工作区文件夹内的所有内容移到联机文件夹下

s-online/ 
    ├── .git    
    └── data 
    ├── logic 
    ├── site 
    ├── stores 
    └── tools 
    ├── config 
     ├── build 
     ├── dataload 
     ├── export 
     ├── http 
     ├── search 
     ├── web 
     └── webservice 

一些开发者想开始使用Git作为今天的新的发展,而其他开发谁仍然致力于SVN将需要一段时间才能过渡到完全的git。

在那之前,挑战是能够同步从svn trunk到我的git repo(修改后的文件夹结构)的提交一段时间。

当我执行git svn fetch后跟git svn rebase时,rebase需要一段时间(可以理解,因为我对文件夹结构的更改需要应用在svn提交之上)。但是,对于所有提交给svn的文件(因为文件夹在git中重新构建),我在rebase期间遇到了所有这些文件的冲突。

我不知道为什么在首先提交给svn的所有文件都存在冲突,因为我所做的一切都是在git中重新组织文件夹结构?

有什么我失踪?

回答

0

可能还有其他的东西丢失了,但通常你应该保持结构和文件同步双方,只要你有活动提交svn。在git方面限制合并提交也更好,因为它们可能会使git svn rebase复杂化,除非您事先压缩这些合并。

+0

谢谢。我想这是最简单的方法。 – Joker