簡體   English   中英

svn branch commit - 實驗提交

[英]svn branch commit - experimental commit

我已經制作了一些我希望保存在存儲庫中的實驗代碼,但我不希望它在主分支上。 你會如何將它交給一個分支機構?

也許我弄錯了,但是我對分支的理解,實際上你所做的就是將已經簽入的代碼復制到存儲庫中的另一個目錄。 我想可以將主分支復制到另一個位置,然后將工作副本存儲庫位置指針更改為指向該位置,然后提交實驗代碼。 但這似乎有點啰嗦。 這真的是你怎么做的?

這確實是你如何做到的(至少在Subversion中)。 例如:

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

Subversion cp (復制)操作設計得非常便宜,並且實際上不會再次復制存儲庫中的所有代碼。 它只是設置指針指向從trunk復制的修訂版。

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

SVN分支不會再次復制所有代碼,它只是引用原始代碼,並添加新代碼的Diff。 分支的另一個好處是,您始終可以將其與源進行合並或同步。 分支只是SVN Repository中的另一個文件夾,如標簽或主干。

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

您可以在免費的SVN Book中找到有關SVN分支的命令和更多信息

AFAIK大多數帶有GUI的SVN客戶端(例如Tortoise,Subclipse,SvnX都有一個分支命令,可以為您提供神奇的功能。

否則請看格雷格的回答。

暫無
暫無

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

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