簡體   English   中英

git-svn合並2個svn分支

[英]git-svn merge 2 svn branches

我正在使用svn。 我有兩個分支,並且兩個分支都進行了很多更改。 除了其中一個分支之外,很多文件都被重命名,所以現在svn無法幫助我合並這些文件中的更改(知道svn限制)。

  1. 是否可以使用git-svn來執行分支的合並?
  2. git-svn會處理重命名的文件嗎?

謝謝

git merge應該能夠檢測(最多某一點)重命名。

recursive

這只能使用3向合並算法解析兩個磁頭。
此外,這可以檢測和處理涉及重命名的合並。
這是拉動或合並一個分支時的默認合並策略。

但是git-svn只能從/向SVN導入/導出,而不能進行合並。
合並是棘手的:

CAVEATS

為了簡單和與功能較弱的系統(SVN)互操作,建議所有git svn用戶直接從SVN服務器克隆,獲取和dcommit,並避免git之間的所有git clone / pull / merge / push操作存儲庫和分支機構。
在git分支和用戶之間交換代碼的推薦方法是git format-patch和git am,或者只是'dcommit'ing到SVN存儲庫。

不建議在您計划提交的分支上運行git merge或git pull。 Subversion不以任何合理或有用的方式表示合並; 因此使用Subversion的用戶無法看到您所做的任何合並。 此外,如果您從作為SVN分支鏡像的git分支合並或拉出,則dcommit可能會提交到錯誤的分支。

如果你做了合並,請注意以下規則:git svn dcommit將嘗試在名為的SVN提交之上提交

git log --grep=^git-svn-id: --first-parent -1

因此,您必須確保要提交的分支的最新提交是合並的第一個父級。 否則會發生混亂,特別是如果第一個父級是同一SVN分支上的較舊提交。

我曾經在大學的一個項目中遇到過同樣的問題。 我做的是以下內容:

  • 創建一個新的git-svn存儲庫( git svn clone -s https://…
  • 用git合並分支( git checkout master; git merge branch
  • 用svn簽出trunk( svn co https://…/trunk
  • 從git復制合並的文件
  • 使用svn刪除剩余的文件和目錄( svn rm
  • 用svn( svn ci )提交
  • 在git中獲取新的提交

使用SVN合並功能合並SVN分支,會更快。 使用Git來解決這些問題非常復雜,它會產生太多的錯誤......

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM