3

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

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

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

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

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

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

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

4

4 回答 4

2

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

如果您可以使用该工具,那么它总是比稍后发现 svnsync 或 svnadmin pack 无法与您修改的存储库一起使用要好。

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

不过,我认为您不会找到任何对这种方法有直接经验的人!

于 2009-08-19T09:51:47.517 回答
2

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

问:有没有办法人为地增加 subversion 中的存储库修订号?

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

于 2009-10-30T11:20:21.153 回答
2

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

根据需要多次重复:

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

笔记:

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

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

于 2013-09-05T12:38:03.017 回答
-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 管理场景(但不是全部)中很有帮助;具体来说,如果对 repo 的提交按文件夹聚合(例如发布标识符),svndumpfilter将有助于减少 repo 大小,从而允许您删除不需要的文件夹。

于 2013-08-29T08:26:18.217 回答