[英]How do I use version control to make my own modifications to non vcs-ed stuff?
[英]How do I use version control tags?
我開發了一種宣傳冊網站模板,我的大多數客戶網站都以此為基礎。 模板和派生站點一起存儲在 Subversion 存儲庫中。 前沿(但穩定)代碼位於/trunk
; 每個網站都有自己的分支,使定制更容易。 現在我即將發布 2.0 版本,我覺得我需要接受標簽。
據我了解,應該標記重要的版本。 標簽只是一個指向特定版本的指針,永遠不應該被修改。 所以假設我的模板有一個 2.0 版的標簽,並且主干中已經有新代碼。 如果我想創建一個基於 2.0 代碼的新分支,我該怎么做 go 呢?
我是否分支/tags/2.0
? 這不可能。 我將在哪里提交我的更改? 我不得不故意繞開我的分支的祖先。 我是否必須手動查找/tags/2.0
對應的主干修訂,然后在主干中分支該修訂? 這似乎……很麻煩。 我相信直到最近 Subversion 甚至都沒有存儲這些信息!
顯然,我缺少一些基本的東西。 快速了解標簽的實際使用方式(而不是它們的用途)會有所幫助。 謝謝。
編輯:在我說“分支/tags/2.0
”的地方,我的意思是“簽出/tags/2.0
”。 但那個錯誤也是我問題的答案。 出於某種原因,我從未想過復制標簽。 愚蠢,對吧? 但在我看來,標簽是“最終的”。
順便說一句,我完全明白標簽只是一種約定。 我感到困惑的是約定本身,而不是它的底層實現。
始終從主干創建分支,除非您想從過去的某個點(過去的標簽、分支或舊主干修訂)進行分支。
此外,您不能輕易地將任何內容提交到標簽上; 至少 TortoiseSVN 客戶端會通過消息保護您。
我將前沿(但穩定)放入/trunk。 當一個版本的功能完成后,我將 /trunk 復制到 /branches/Foobar-1.2.3.X。 我立即將 /branches/Foobar-1.2.3.X 復制到 /tags/Foobar-1.2.3.0 (這使以后的差異更容易,我可以將 /branches/Foobar-1.2.3.X 差異到 /tags/Foobar-1.2。 3.0 看看我的分支發生了什么變化,因為到那時 /trunk 可能會有所不同)。 最終開發繼續在 /branches/Foobar-1.2.3.X 中的功能進行,當我發布版本時,我復制到 /tags/Foobar-1.2.3.1、/tags/Foobar-1.2.3.2 等。我的構建系統是旨在僅從 /tags/Foobar-???? 中提取代碼。
這也適用於“特殊”分支:/branches/Foobar-WhizzBangFeature-1.2.X
是的,使用svn copy
在存儲庫的/branch
文件夾中為您要分支的版本創建一個分支。
例如:
/branch
/tags
/1.0
/2.0
/trunk
然后對於 2.0 上的分支:
/branch
/something2.0
/tags
/1.0
/2.0
/trunk
您在 /branches(或存儲分支的任何位置)下制作標簽目錄的副本(使用 'svn copy'),可能使用 2.0-hotfix 或類似於分支名稱的名稱(與標簽名稱不同)。
它很簡單。 SVN 並沒有真正的標簽和分支,只有目錄和文件。 這完全取決於您的政策。
可能更自然的方法是先創建 2.0 分支,穩定分支中的代碼,然后從分支創建標簽。
我假設您使用的是 Tortoise SVN。 假設您有以下情況:
/trunk
/braches
/branch1
/branch2
/tags
/1.0
/2.0
那么你需要做的就是:
就是這樣。 然后,您需要查看 /branches/tag/2.0 (或您所稱的任何名稱)來處理它。
您需要做的是始終將 SVN 視為簡單的文件系統。 您在該文件系統中賦予事物的名稱和含義取決於您。 例如,您不能編輯“標簽”這一事實只是一種約定——底層文件系統並不關心您是否編輯它們。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.