2016-07-27 119 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