2013-03-05 63 views
2

我使用git-svn來處理在sourceforge上託管的svn存儲庫。最近,我更新了導致svn存儲庫發生更改的sourceforge項目。確切地說,現在可以使用svn + ssh訪問新的svn存儲庫,並且舊的存儲庫已被設置爲只讀。git-svn和更新的svn url

現在,在我的本地git-svn克隆目錄中,我更新了.git/config以更新之前的url。然而,當我做混帳SVN信息或混帳SVN變基,我收到以下錯誤: 無法從工作樹歷史

進一步確定上游SVN信息,我使用下面的命令創建了一個全新的git - svn的克隆: git svn init -T trunk -t標籤-b分支svn + ssh://[email protected]/p/dmtcp/code dmtcp-git

這個克隆工作正常,沒有問題它。但是,參考文獻與舊版克隆不同。

爲了使事情變得複雜,我在github上維護了一個git倉庫,當我將它們提交給sourceforge svn(出於歷史原因)時,我會推送它們。這一切都用於以前的sourceforge svn url。但是現在使用更新後的版本庫,引用全部搞砸了,即它們與github上的版本庫不匹配。

當然,我可以做一個「git push -f」來更新參考文獻,但是想知道是否有人對修復參考文獻有任何想法/想法。

謝謝!

回答

1

git svn使用svn存儲庫的根URL不僅僅是訪問 該存儲庫。它還需要確定svn分支,並且(至少默認爲 )URL將包含在提交消息中。後一個原因是 爲什麼你的新克隆顯示所有提交不同。

但是,您可以將其配置爲在使用新URL實際訪問存儲庫時繼續使用舊URL作爲其他 的用途。您只需要 需要將rewriteRoot項添加到您的 .git/config文件的svn-remote部分,並將其設置爲svn存儲庫的舊URL。 應該允許你繼續從svn提取更新。

+0

我讀過關於rewriteRoot的內容,但沒有足夠重視它的目的。感謝您的解釋!! (只要我獲得足夠的聲望,我會「投票」你的答案:-)) – 2013-03-05 02:34:54