2010-03-13 210 views
11

我做了一些實驗代碼,我想保存在存儲庫中,但我不希望它在主分支上。你如何將這個交給分支?svn分支提交 - 實驗提交

也許我得到了這個錯誤,但是我對分支的理解,你實際上做的是將已經簽入的代碼複製到存儲庫中的另一個目錄。我想可以將主分支複製到另一個位置,然後將工作副本存儲庫位置指針更改爲指向該位置,然後提交實驗代碼。但是這似乎有點冗長。這真的是你怎麼做到的?

回答

14

那的確是你如何做到這一點(至少在顛覆)。例如:

 
svn cp svn://server/repo/trunk svn://server/repo/branches/experiment 
svn switch svn://server/repo/branches/experiment 
svn commit -m "testing stuff" 

的顛覆cp(複印件)操作的設計是非常便宜,實際上並沒有使所有的代碼副本在你的倉庫一次。它只是設置指向您在trunk中複製的修訂的指針。

並非所有系統都以這種方式工作;例如在Git中,您可以創建一個新分支並使用一個命令切換到它:git checkout -b experiment

+0

從技術上講,你應該使用創建分支修改你的工作副本而不是ToT,不是嗎? – 2014-05-30 04:51:39

2

SVN分支不會再次複製所有代碼,它只是引用原始代碼,並添加新代碼的Diff。分支的另一件好事是您可以隨時將其與源代碼合併或同步。分支只是SVN庫中的另一個文件夾,如標籤或中繼。

我會建議在切換分支之前創建備份,以免錯誤覆蓋現有的更改。

您可以找到有關SVN分支的命令和信息的自由SVN Book

1

據我所知最具有GUI SVN客戶端(如龜,Subclipse的,SvnX有一個分支指令,做的魔力爲你。

否則看到格雷格的答案。