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

如何更改Ortoise SVN中存储库的修订号?,svn,tortoisesvn,Svn,Tortoisesvn,我有一个修订号为3960的项目。但不幸的是,它不在源代码控制之下。现在我想把它放在SVN下,用乌龟SVN。但是当我把它放在那里的时候,它会有1,2,3,4等的修正 有没有办法将修订号改为3960?有,但不是很有用 如果你需要某种方式来跟踪这些信息,你可以考虑创建一个标签“3960”,但否则会留下正常的修订过程。 如手册所述: 全球修订号 与许多其他版本控制系统不同,Subversion的修订号适用于整个树,而不是单个文件。每个修订号选择一个完整的树,即某个提交的更改后存储库的特定状态。 另一种考

我有一个修订号为3960的项目。但不幸的是,它不在源代码控制之下。现在我想把它放在SVN下,用乌龟SVN。但是当我把它放在那里的时候,它会有1,2,3,4等的修正

有没有办法将修订号改为3960?

有,但不是很有用

如果你需要某种方式来跟踪这些信息,你可以考虑创建一个标签“3960”,但否则会留下正常的修订过程。

如手册所述:

全球修订号
与许多其他版本控制系统不同,Subversion的修订号适用于整个树,而不是单个文件。每个修订号选择一个完整的树,即某个提交的更改后存储库的特定状态。
另一种考虑方法是,修订版N表示第N次提交后存储库文件系统的状态。当Subversion用户谈论“foo.c的修订版5”时,他们真正的意思是“foo.c,正如修订版5中所显示的那样”


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

首先,我不知道如何做到这一点。如果可能,我认为您必须使用svn钩子脚本

其次,源代码管理系统中的修订号与程序的修订(版本)号无关。源代码管理系统会跟踪您提交的每个更改,因此您提交的代码可能比构建的代码多得多。 如果您不只是提交带有新版本号的更改,而且我不认为您应该以如此大的步骤签入更改,那么每次更改都可能有所不同


为了跟踪您的版本号,您应该使用标记。

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

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个这样的修订版,您可能需要编写一个脚本来生成转储文件。我将此作为练习留给读者:-)

我不同意您的说法,即这不是很有用。如果您使用修订版号作为版本号的一部分(替换版本号#)试图复制错误时,您始终可以将存储库设置为该特定版本。您可以为此使用标记,但如果同一存储库中有多个可执行文件,则需要额外的步骤,并且会很快发生故障。@skamradt使用“版本号作为版本号的一部分(替换内部版本号)”“总的来说,这是一个很好的做法,我同意。我只是指出了这种特殊情况(如OP的问题中所述)所涉及的麻烦,而不是将旧版本号存储在某个地方然后重新开始。需要注意的一点是,“版本号”的最大值为65535,而SVN存储库的修订可以很快增长到超过这个值。如果您发现您的存储库比以前的生成号增长得更快,您可能需要考虑将修订号移动到注释字段中,并允许生成号自然增加。