人工输入SVN(FSFS)存储库中的修订号

人工输入SVN(FSFS)存储库中的修订号,svn,repository,fsfs,Svn,Repository,Fsfs,我的公司正在执行SVN存储库迁移,我希望避免两个存储库(目前都处于活动状态)之间版本号的重叠 我的要求是将新存储库的修订强制为特定的修订号(比如:100.000) 通过分析FSFS存储库,我遇到了“db/current”文件,它听起来像是更改存储库编号的正确位置 有没有人有这方面的经验?我想避免将来发生奇怪的事情 PS:我知道我可以创建“100.000”虚拟提交到存储库。请分享您在生产过程中和生产后对该过程的经验以及存储库可能出现的性能问题 PS3:我知道在手术前让每个人都提交工作副本可能是个好

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

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

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

有没有人有这方面的经验?我想避免将来发生奇怪的事情

PS:我知道我可以创建“100.000”虚拟提交到存储库。请分享您在生产过程中和生产后对该过程的经验以及存储库可能出现的性能问题

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


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

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

如果您可以使用该工具,它总是比稍后发现svnsync或svnadmin包(例如)无法使用您修改的存储库要好

好的,如果您仍然想这样做,请更新revprop 0中的最后修订号和db/current文件,您应该可以

我不认为你会找到任何人谁有这种方法的直接经验,虽然

问:有没有一种人为增加存储库版本的方法 颠覆中的数字

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


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

从该页:

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


因此,这可以用于从特定路径中删除提交数据,这在某些回购管理场景(但不是全部)中很有用;具体地说,如果对repo的提交是通过文件夹(如发布标识符)聚合的,那么svndumpfilter将有助于减少repo的大小,从而允许您删除不需要的文件夹。

一种简单的虚拟修订方法

根据需要多次重复:

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

  • 值“0”不必与提交到 下一个你可以重复同样的命令
  • 直接更改存储库,无需签出或工作副本
  • 更改根文件夹(由“…svn/repo”后面的/引用)。因此,它甚至可以在一个新的空存储库上执行
  • 仅更改文件夹的属性。这些仅适用于SVN。因此,如果您签出或更新,svn不知道的应用程序(如您的操作系统)将不会注意到文件夹本身的任何更改。只有在存储这些属性的.svn子文件夹中,文件才会更改
  • svnmucc是官方Subversion工具的一部分,至少在1.8版(可能更早)中,请参见:
  • 当然,密码只是一个例子,不要担心我泄露了任何真实的凭据。:-)

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

谢谢!我错过了revprop 0!顺便说一句:我不打算合并这两个存储库。我们正在将“一个项目一个项目”移动到新的存储库中,一旦完成所有项目,我们将把旧的存储库保持为“历史”。再次感谢!这似乎根本没有回答最初的问题。怎么会这样?就我所见,它回答了根本问题。