【问题标题】:SVN Mirror tagged branch history preservationSVN Mirror 标记的分支历史保存
【发布时间】: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 个分支拥有完整的历史记录

【问题讨论】:

    标签: bitbucket git-svn subgit


    【解决方案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”存在,它会这样做
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-20
    • 1970-01-01
    相关资源
    最近更新 更多