人为增加SVN(FSFS)存储库中的修订号

时间:2009-08-19 09:38:14

标签: svn repository fsfs

我的公司正在执行SVN存储库迁移,我希望避免两个存储库(目前都处于活动状态)之间的版本号重叠。

我的要求是强制将新存储库的修订版修改为特定的修订版号(例如:100.000)。

通过分析FSFS存储库,我遇到了“db / current”文件,它听起来像是更改存储库编号的正确位置。

有没有人有过这个程序的经验?我想避免将来发生奇怪的事情!

PS:我知道我可以为存储库创建“100.000”虚拟提交。请在执行期间和之后分享您对存储库的此类过程和可能的性能问题的经验

PS3:我理解让每个人在程序之前提交工作副本可能是个好主意。这对我们来说不是问题(新的存储库目前用户非常有限)。不过,如果您有此类或类似要求的经验,请分享! :)

PS3:我知道这不是一个标准的SVN程序,很多人可能会对需求本身提出异议。让我们假设我的要求是合理的! :)

4 个答案:

答案 0 :(得分:2)

首先,不要费心去试着这个。如果要合并2,可以使用dump / load将新的一个放在旧的顶部,将为您处理修订号。因此,除非您需要知道特定版本的版本号(对于外部版本或标签),否则您根本不必担心这一点。

如果您可以使用该工具,它总是比稍后查找svnsync或svnadmin包更好,例如,不适用于您修改的存储库。

好的,所以如果你还想这样做,请更新revprop 0和db / current文件中的最后修订号,你应该没问题。

我认为你不会找到任何直接使用这种方法的人!

答案 1 :(得分:2)

http://subversion.tigris.org/ds/viewMessage.do?dsForumId=1065&dsMessageId=940194

  问:有没有办法人为地增加存储库修订   颠覆中的数字?

     

答:唯一的方法是提交一些虚拟修订。

答案 2 :(得分:2)

进行虚拟修改的一种简单方法......

根据需要多次重复:

svnmucc propset dummy_prop 0 -m "increases revision" https://svn/repo/ --username me --password x7G_5-u1,W

注意:

  • 值“0”不必与一次提交不同 下一个。你可以重复相同的命令。
  • 直接更改存储库,无需签出或工作副本。
  • 更改根文件夹(由“... svn / repo”之后的尾随/引用)。因此,它甚至可以在一个新鲜的'空'库中执行。
  • 仅更改文件夹的属性。这些仅适用于SVN。因此,如果您签出或更新,svn-unaware应用程序(如您的操作系统)将不会注意到有关该文件夹本身的任何更改。只有在存储这些属性的.svn子文件夹中,才会更改文件。
  • svnmucc是官方Subversion工具的一部分,至少在1.8,也许更早,另见:http://svnbook.red-bean.com/en/1.8/svn.ref.svnmucc.re.html
  • 当然密码只是一个例子,不要担心我披露了任何真实的凭据。 : - )

我希望这可以为其他人节省一些研究步骤。

答案 3 :(得分:-3)

使用Subversion 1.7,您可以使用 svndumpfilter 工具从svnadmin dump创建的转储文件中过滤掉不需要的提交:

http://svnbook.red-bean.com/en/1.7/svn.reposadmin.maint.html#svn.reposadmin.maint.filtering

从该页面开始:

  

[svndumpfilter]充当存储库转储流的基于路径的过滤器

因此,这可用于从特定路径中删除提交数据,这在某些repo管理方案中很有用(但不是全部);具体而言,通过文件夹(例如发布标识符)聚合提交到仓库的提交, svndumpfilter 将有助于减少仓库大小,允许您删除不需要的文件夹。