如何更改Tortoise SVN中存储库的修订版号?

时间:2009-01-12 14:50:42

标签: svn tortoisesvn

我有一个版本号为3960的项目。但不幸的是,它不受源代码管理。现在我想把它放在SVN下并使用Tortoise SVN。但是当我把它放在那里它将从1,2,3,4等进行修改。

有没有办法将版本号更改为3960?

3 个答案:

答案 0 :(得分:9)

我能想到的最安全的方法是制作一个包含适当数量的空修订版的转储文件,而不是加载它。格式如下:

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:date并且它仍然是一个有效的svn存储库,但是{date}的查询将不起作用(就像它们在任何情况下都不会随着修订而单调增加日期) 。所以最好假装一串合理的日期。

如果您想要3960这样的修订,您可能想编写一个脚本来生成转储文件。我把它作为练习留给读者: - )

答案 1 :(得分:7)

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

如果您需要以某种方式跟踪此信息,您可以考虑创建标记'3960',否则将进行正常的修订过程。

如手册中所述:

  

全球修订号
  与许多其他版本控制系统不同,Subversion的修订版号适用于整个树,而不是单个文件。每个修订号都会选择一个完整的树,即一些提交更改后的存储库的特定状态   另一种思考方式是修订版N表示第N次提交后存储库文件系统的状态。当Subversion用户谈论“foo.c的修订版5”时,它们的确意味着“foo.c,因为它出现在修订版5中。”

版本号不同于**应用程序版本号“(应用程序的版本号):后者由标记表示。

答案 2 :(得分:3)

首先,我不知道如何做到这一点。如果有可能,我认为你必须使用svn-hookscript。

其次,源代码管理系统中的修订号与您的程序的修订版(版本号)无关。源代码管理系统会跟踪您提交的每个更改,因此您可能需要提交的代码多于代码构建。 它可能每次都有所不同,如果您不仅仅使用新的构建号提交更改,我认为您不应该只是在如此大的步骤中检查更改。

要跟踪您的内部版本号,您应该使用代码。