SVN Mirror 标记的分支历史保存
Posted
技术标签:
【中文标题】SVN Mirror 标记的分支历史保存【英文标题】:SVN Mirror tagged branch history preservation 【发布时间】:2021-12-07 04:58:53 【问题描述】:我的任务是仅从我们的 SVN 存储库中镜像具有完整历史记录的特定分支,必须镜像的分支已被标记/剪切多次。我一直在 Bitbucket 上使用 Subgit SVN Mirror 插件来执行此操作。但是,镜像仅显示分支被标记时的历史记录。有没有办法只镜像一个分支,同时在 Git 中保持完整的 SVN 历史记录? 我们在 SVN 中的结构类似于以下,其中“trunk”是源分支,“feature1”是从“trunk”标记的,“feature2”是从“feature1”标记的,“taggedTrunk”是需要镜像的分支:
/Project A
/branches
/taggedTrunk
/feature1
/feature2
/trunk
我尝试了以下映射:
1.
trunk = Project A/branches/taggedTrunk:refs/heads/development
branches = Project A/trunk:refs/heads/originalTrunk
includePath = /src
trunk = Project A/branches/taggedTrunk/:refs/heads/development
branches = Project A/branches/*:refs/heads/*
includePath = /src
澄清一下,我们并不是要镜像整个仓库 - 在我们的 Git 仓库中,我们只希望 1 个分支拥有完整的历史记录
【问题讨论】:
【参考方案1】:重要的是“taggedTrunk”分支是从哪里标记的以及它是如何创建的,通过使用 'svn copy' 复制源目录以便复制信息出现在 SVN 历史记录中,或者通过使用常规复制操作系统“复制”然后添加,以便此操作在历史记录中反映为简单的添加,而不是复制。 在前一种情况下,可以通过将源分支添加到映射中来获得历史记录。也就是说,如果“taggedTrunk”是通过复制“feature1”创建的,则将其添加到映射中
trunk = Project A/branches/taggedTrunk:refs/heads/development
branches = Project A/branches/feature1:refs/heads/feature1
includePath = /src
将带来历史。 在后一种情况下,恐怕无法获取分支的历史记录,因为 SVN Mirror 插件无法识别和追踪历史记录。
【讨论】:
如果我错了,请纠正我,但是这个映射不会创建 2 个分支吗? 是的,如果“feature1”存在,它会这样做以上是关于SVN Mirror 标记的分支历史保存的主要内容,如果未能解决你的问题,请参考以下文章
SVN使用教程之-分支/标记 合并 subeclipse (转)
使用 cvs2svn 时,如何重命名符号以使分支和标记解析为相同的名称?