2009-01-12 342 views
4

我有一個修訂號爲3960的項目。但不幸的是它不受源代碼控制。現在我想把它放在SVN下並使用Tortoise SVN。但是當我把它放在那裏時,它會從1,2,3,4等修改。如何更改Tortoise SVN中的存儲庫版本號?

有沒有辦法將版本號更改爲3960?

+1

需要注意的一件事情是,「內部版本號」的最大值爲65535,而SVN版本庫修訂版可以快速增長。如果您發現您的存儲庫增長速度比以前的內部版本數量增長速度快,則可能需要考慮將修訂版本號移入註釋字段,並讓版本號自然增加。 – skamradt 2012-02-09 18:22:23

回答

8

我能想到的最安全的方法是將一個具有適當數量的空版本的轉儲文件加載。該格式將是這樣的:

SVN-fs-dump-format-version: 2 

Revision-number: 0 
Prop-content-length: 56 
Content-length: 56 

K 8 
svn:date 
V 27 
2009-01-12T14:58:15.449041Z 
PROPS-END 

Revision-number: 1 
Prop-content-length: 56 
Content-length: 56 

K 8 
svn:date 
V 27 
2009-01-12T14:58:40.758271Z 
PROPS-END 

Revision-number: 2 
Prop-content-length: 56 
Content-length: 56 

K 8 
svn:date 
V 27 
2009-01-12T14:58:44.509698Z 
PROPS-END 

你可以省略的svn:日期,它仍然是一個有效的SVN倉庫,而是由{}日期查詢是行不通的(就像他們不以任何日期並未隨修訂單調增加的情況)。所以最好假設一串可能的日期。

如果您想要3960個這樣的修訂版,您可能需要編寫一個腳本來生成轉儲文件。我將這個作爲練習留給讀者:-)

7

它是possible in theory,但不是很有用。

如果您需要某種方式來跟蹤這些信息,您可以考慮創建一個標記'3960',但否則會使正常的修訂過程發生。

按照手冊中說:

全局版本號
不像其它版本控制系統,Subversion的版本號是針對整個目錄樹的,而不是單個文件。每個修訂號都會選擇整個樹,即某個確定的更改後的特定存儲庫狀態。
另一種考慮它的方式是修訂版N表示第N次提交之後存儲庫文件系統的狀態。當Subversion用戶談論「foo.c的修訂版本5」時,他們確實是指「foo.c,因爲它出現在修訂版本5中」。

修訂版本號不同於應用程序版本號「你的應用程序的版本號):後者由一個標籤表示

+1

我不同意你的陳述,這不是很有用。如果您使用版本號作爲版本號的一部分(替換內部版本號),則在嘗試重現錯誤時,始終可以將存儲庫設置爲該特定版本。您可以爲此使用標籤,但如果您在同一個存儲庫中有多個可執行文件,則需要額外的步驟並快速分解。 – skamradt 2012-02-09 17:57:14

3

首先,我不知道如何做到這一點,如果可能的話,我認爲你必須使用svn-hookscript。其次,源代碼管理系統中的版本號與您的程序的版本號(版本號)無關,源代碼管理系統會跟蹤您提交的每一項變更,因此您可能提交比提交代碼更多。 如果您不只是用新的內部版本號提交更改,而且我認爲您不應該僅僅通過如此巨大的步驟檢查更改,則每次都可能會有所不同。

爲了跟蹤您的內部版本號,您應該使用標籤。

相關問題