2009-09-29 144 views
5

我正在修改存儲在SVN回購中的開源項目。由於我的更改可能需要一段時間才能完成,因此我使用git-svn橋檢查了該項目作爲Git repo。我無法訪問該項目的Subversion repo,因此我無法將更改推回給它,但我想發佈我的Git repo(在GitHub上),以便其他人可以跟蹤我的修改的開發。發佈「git svn」回購

要更新「混帳SVN」回購,你用git svn rebase,其中,顧名思義,變基對從Subversion回購的新變化,頂部的任何變化。當然,這不是推你重訂到公共Git的回購任何分支是一個好主意,所以關於從SVN倉庫克隆回購,我有幾個相關問題:

  1. 是它可以安全地發佈重新設計的分支(使用git-svn rebase)進行公開回購?
  2. 我的理解是,假設你的Git中的主分支是你從SVN回購中修改變更的分支,那麼你不應該在該回購中做任何真正的開發;也就是說,如果您將更改合併到master中,則應將其推入SVN回購(使用git svn dcommit)。如果你堅持這一政策,是否可以將重新設立的分行發佈到公共回購協議中?

回答

1
  1. 是安全的,發佈一個SVN分支,但只有當所有提交都推到使用git-svn dcommit SVN回購協議。如果你在分支沒有任何變化,那麼git-svn rebase只會快速前進。

    如果有人從您發佈的分支中分支出來,重要的是他們知道它來自SVN回購。這是因爲如果你試圖接受他們的改變,推動他們進入SVN回購的唯一方法就是重新調整他們的改變。在您再次發佈提交的更改後,他們將不得不處理衝突的提交,因爲哈希將不匹配。

  2. 工作在master是安全的,但可能不實際。從上面開始,在運行git-svn dcommit之前,您無法發佈提交。因此,如果您有任何不想提交的工作,則需要在嘗試發佈最新的SVN提交之前將其移至單獨的分支(即git-svn rebase; git push