gpt4 book ai didi

git - SubGit:如何排除分支?

转载 作者:太空狗 更新时间:2023-10-29 13:09:35 24 4
gpt4 key购买 nike

我正在测试 SubGit 作为从 SVN 迁移到 Git 的一种方式。

我想做的是能够在 git 存储库中创建所有用户都可以使用的远程分支,不会同步回 SVN。

我只希望 SubGit 跟踪 master 分支并将其同步回 SVN,以便我们可以自由使用和共享其他 Git 分支。

有没有简单的方法可以做到这一点?

谢谢

最佳答案

理想的解决方案是在 SubGit configuration 中指定 trunk:refs/heads/master 映射, 因此 SubGit 将同步 trunkmaster 忽略任何其他分支。

不幸的是,SubGit 目前至少需要一个分支映射(版本 1.0.x 和 2.0.x)。也就是说,必须指定如下内容:

trunk = trunk:refs/heads/master
branches = branches/*:refs/heads/*
shelves = shelves/*:refs/shelves/*
tags = tags/*:refs/tags/*

由于您不打算同步所有 Git 分支,请考虑使用一些特殊的命名空间来解决此问题:

trunk = trunk:refs/heads/master
branches = branches/*:refs/gitsvn/heads/*
...

因此,如果将 master 分支推送到中央 Git 存储库,它会被转换为 trunk。但是,如果推送分支 foo,SubGit 会忽略该分支,因为 refs/heads/foo 不在同步范围内。

麻烦来自 merge 提交:如果提交 A 是 merge 分支 foomaster 的结果,那么 SubGit 会创建 branches/foo在提交 A 的相应父级的 Subversion 端。如果您不希望将 SubGit 生成的分支包含到 *branches/** 命名空间中,请考虑在 Subversion 端也使用一些特殊分支:

trunk = trunk:refs/heads/master
branches = gitsvn/branches/*:refs/gitsvn/heads/*
shelves = shelves/*:refs/shelves/*
tags = gitsvn/tags/*:refs/gitsvn/tags/*

在这种情况下,应将提交 A 的同一父级发送到 gitsvn/branches/foo 分支。

这是目前可用的最佳解决方案。我们还有 2.1 版的功能请求,可以为您提供理想的解决方案,但我们需要一些时间才能实现它。

SubGit 3.0 更新:

从 3.0.0 版本开始(目前处于早期访问阶段,下载地址 http://subgit.com/eap )SubGit 支持单分支布局,因此配置文件可能如下所示:

  1. 没有主干,没有分支,没有标签,没有架子:

    [svn]
    url = http://host.com/repos/project

    在这种情况下,project 目录直接映射到 Git 存储库中的 master 分支; SubGit 忽略任何其他分支并且从不创建架子,这意味着匿名 Git 分支不会同步到 SVN。

  2. 单行李箱,无货架:

    [svn]
    url = http://host.com/repos/project
    trunk = trunk:refs/heads/master

    在这种情况下,project/trunk 目录映射到 Git 存储库中的 master 分支; SubGit 忽略任何其他分支并且从不创建书架。

  3. 带搁板的单行李箱:

    [svn]
    url = http://host.com/repos/project
    trunk = trunk:refs/heads/master
    shelves = shelves/*:refs/shelves/*

    在这种情况下,project/trunk 目录映射到 Git 存储库中的 master 分支; SubGit 忽略任何其他分支,但它会将匿名分支转换为搁置,默认情况下是版本 1.0.x 和 2.0.x。

希望对您有所帮助。

关于git - SubGit:如何排除分支?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16588228/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com