2011-06-01 165 views
13

我正在使用SVN存儲庫,並且不想創建新的SVN分支。相反,我想在我的機器上創建一個本地分支,這可以通過Git輕鬆完成。創建本地SVN分支

但我目前使用SVN,需要從已經修改的SVN版本分支出來。從本質上講,我想以下幾點:

  • svn_repo_version = 2259
  • working_copy =修改2259
  • new_local_svn_branch =基於改性2259

什麼是去了解它的最佳方式?

+4

不是你的問題的直接答案,但你可以使用git-svn橋向前走,這樣你就可以在本地使用git與SVN服務器通信,這通常是我的做法。這樣你得到當地的分支機構。請參閱:http://stackoverflow.com/questions/5247435/can-i-use-git-svn-and-look-like-i-was-using-svn-if-yes-how/5247542#5247542 – vcsjones 2011-06-01 19:26:36

+2

你需要本地修訂跟蹤?這對svn來說是不可能的。 – 2011-06-01 19:29:36

+0

@vcsjones:我以前做過。我正在考慮這樣做。但是我想檢查一下,我們是否可以用svn來做些什麼。謝謝。 – 2011-06-01 19:32:41

回答

12

Subversion是一個集中版本控制系統。集中式系統的一些優點是它可以強制每個人使用相同的代碼庫。你不能一次隱藏你的作品幾個月,然後在主要發佈前兩天突然把它放下。不好的部分是你不能真正擁有一個私人分支,也沒有它顯示在存儲庫中。

你沒有理由不能創建自己的分支。事實上,我用它來給我們的開發者一個特殊的「私人」目錄,他們可以放置他們自己的代碼,並進行私人分支。我有一個預先提交的腳本,只允許分支的所有者進行更改,儘管我已經設置好了,所以任何人都可以看到它。

如果您擔心您的私人分支可能會阻塞branches目錄,請記住,您可以在完成後從branches目錄中刪除分支。或者,你可以請求一個平行的private目錄,你可以放置你的東西。

如果你真的想建立一個真正的私人區域,您可以使用Subversion和檢查代碼,而它的主要存儲庫中出現,你有兩個選擇,我知道的:

  • SVK:這是一個在其後端使用Subversion的前端分佈式版本控制系統。您可以創建自己的Subversion存儲庫,並在本地存儲庫和主存儲庫之間來回發佈更改。

  • Git:Git自帶了一個名爲git-svn工具,它允許你拉數據從Subversion倉庫到本地Git倉庫。然後,您可以使用您的本地Git存儲庫進行分支,然後再將其更改回Subversion。甚至有一個Git版本Tortoise

唯一需要注意的是,您將不得不用命令行界面將這些工具弄髒手。

+0

還有Mercurial可以使用Subversion插件與SVN服務器進行交互 - 對於那些也有TortoiseHg不滿意的命令行。 – 2013-11-29 06:41:08

2

恐怕你將不得不創建一個新的分支並不斷合併任何改變。唯一的選擇是簡單地簽出分支,不斷更新,不要提交(或在提交之前保持切換),直到完成。如果您需要在原始分支/主幹上工作,您總是可以有兩份工作副本。遠非理想,但這就是SVN的工作方式,鑑於當時的選擇,這仍然非常好。

我親自管理本地歷史,如果這是你通過我的IDE(Eclipse)之後。

+0

當然,如果你是唯一一個在那個分支上工作的人,那麼它並不是什麼大問題,在你完成所有事情之前,分支並切換。假設你不依賴svn來做備份(這很糟糕!)。 – vickirk 2011-06-01 19:30:58

+0

這又相當於有2個本地副本。我正在做一些彼此不相關的小實驗。所以,我需要單獨的副本。但最後,我需要將它們全部合併。這就是爲什麼我正在探索這個選項。我想我需要使用svn-git。謝謝 – 2011-06-01 19:35:28

+0

@ agent.smith我認爲你可以。當然,如果他們是實驗,他們應該(遵循svn哲學)成爲獨立的分支。如果你對此感到滿意,並假設你的質量程序允許,我會和git-svn一起去;-) – vickirk 2011-06-01 19:39:50