【问题标题】:How to extract branches extending trunk from a SVN repository to a new repository with history如何提取将主干从 SVN 存储库扩展到具有历史记录的新存储库的分支
【发布时间】:2012-06-26 18:14:49
【问题描述】:

我已经在谷歌上搜索了很多这个问题,但没有找到我需要的东西。

我有一个看起来像这样的存储库

/Project_A
  +- trunk
  +- branches
      +- Version_1
      +- Version_2
      +- 1st_Custom_version_for_customer_A
      +- 2nd_Custom_version_for_customer_A
/Project_B
  +- trunk
  +- branches
      +- Version_1
      +- Version_2
      +- 1st_Custom_version_for_customer_A
      +- 2nd_Custom_version_for_customer_A

树枝是它们的树干对应物的后代。例如对于 Project_A

Trunk ------------------------------------------------------>
Version_1   \--------->                    \
Version_2                  \--------->      \
1st_Custom_version_for_customer_A            \--------------->

自定义版本现在有了自己的生命,不再从主干获得任何更新(许多差异)。

我只需要在新存储库中提取与客户相关的修订。那是: /Project_A/trunk 直到创建 1st_Custom_version_for_customer_A 的那一刻。然后是 /Project_A/branches/1st_Custom_version_for_customer_A 和 /Project_A/branches/2nd_Custom_version_for_customer_A。项目 B 也是如此。都在同一个存储库中。

我尝试了 svnsync,但只能提取 /Project_A/branches/2nd_Custom_version_for_customer_A,即使历史记录很好,我仍然可以看到其他分支的所有提交消息(在我的情况下这是一个问题)。

至于 svndumpfilter,如果我从一开始就将所有内容都放在“/Customer_A”下,那将是完美的(下次我会这样工作),但是当分支是另一个分支的副本时,有时会被重命名,删除,重新录制等...我认为它无法正常工作。

有什么工具或什么可以帮助我完成这里的工作吗?

谢谢

【问题讨论】:

  • 基于路径的授权功能(在服务器端)应该在这里有所帮助,我认为 - 您是否尝试为 svnsync 设置受限帐户?
  • @sendmoreinfo 这真是个好主意,应该可以。我已经很久没有问这个问题了,这个“摘录”暂时被推迟了。如果我有空闲时间,我会尝试一下,并会及时更新
  • @sendmoreinfo 成功了!使用基于路径的授权来限制该用户的访问只是一种痛苦。更多信息:stackoverflow.com/questions/3504851/…
  • 嗯,如何将评论转换为答案...
  • @sendmoreinfo 我碰巧和 Eric Bonnot 一起工作,所以只需将您的评论复制/粘贴到答案中,我就会接受。谢谢!

标签: svn branch svnsync svndumpfilter svndump


【解决方案1】:

基于路径的授权功能(在服务器端)应该会有所帮助 -- 您是否尝试过为 svnsync 设置受限帐户?

【讨论】:

  • 是的,这就是这样做的方法。谢谢@sendmoreinfo
猜你喜欢
  • 1970-01-01
  • 2023-04-09
  • 2022-08-07
  • 1970-01-01
  • 2015-01-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多