gpt4 book ai didi

git - Git SVN 忽略路径如何工作(忽略每日构建标签)?

转载 作者:IT王子 更新时间:2023-10-29 00:39:07 25 4
gpt4 key购买 nike

我正在尝试使用 git svn 克隆一个 svn 存储库。存储库有每日构建标记,我想忽略。我正在尝试使用“忽略路径”选项来执行此操作,但我仍然将每日构建标签作为我的存储库中的分支。

这里有一个最近的类似(但迄今为止尚未回答)的问题: How to git svn fetch only branches/tags with certain patterns?

存储库布局 - https://test.kuali.org/svn/rice

通用存储库结构

  • 分支机构
    • 分支机构 1
  • 忽略目录 1
  • 忽略目录 1
  • 标签
    • 标记 1
    • 标记 2
      • 旧标签 1
      • 旧标签 2
    • 构建
      • 每日构建 1
      • 每日构建 2
  • 中继

我尝试过的

我不太擅长正则表达式,它们可能是错误的,但这是我尝试过的:

这只是我在 git svn 文档中找到的内容的修改版本:

git svn clone -r15709:HEAD --prefix=svn/ --stdlayout --no-follow-parent --ignore-paths="^[^/]+/(?:tags/builds|tags/old|branches)" https://test.kuali.org/svn/rice

这是我试图简化的:

git svn clone -r15709:HEAD --prefix=svn/ --stdlayout --no-follow-parent --ignore-paths="(old|builds)" https://test.kuali.org/svn/rice rice-full

绝望...(并添加了一些我不需要的其他路径)

git svn clone -r15711:HEAD --prefix=svn/ --stdlayout --ignore-paths="^[^/]+/(?:builds|old)|inactive|rice-functional-tests|sandbox|tools" https://test.kuali.org/svn/rice

然后我切换到更新的修订版以便它更快完成并尝试忽略所有分支和标签进行测试。这个似乎没有得到任何分支和标签,但它也从未完成。它似乎卡住了(至少,它运行的时间比我想象的要长,因为它只需要一两天的历史记录):

git svn clone -r21846:HEAD --prefix=svn/ --stdlayout --ignore-paths="^tags*|^branches*" https://test.kuali.org/svn/rice

我试过的最后一个是:

git svn clone -r15711:HEAD --prefix=svn/ --stdlayout --ignore-paths="^tags/old*|^tags/builds*|^inactive*|^rice-functional-tests*|^sandbox*|^tools*" https://test.kuali.org/svn/rice

一般的想法和问题

  1. 我不确定 ignore-paths 正则表达式匹配的到底是什么。是svn仓库的相对路径(tags/builds/Daily build 1)?是针对项目中的每个文件(tags/builds/Daily build 1/file 1,tags/builds/Daily build 1/file 2)还是仅在分支/标签级别(tags/builds/Daily build 1)进行评估?它是否包含存储库基本 URL(https://test.kuali.org/svn/rice/tags/builds/Daily build 1)?

  2. 除了 --stdlayout(为标签指定一个正则表达式以获得我想要的内容)之外,还有什么我应该做的吗?

  3. 我只对主干和某些发布标签感兴趣。有没有更好的方法来获得这些?我曾尝试仅使用主干进行克隆,然后在配置中添加“fetch=”以仅添加我关心的标签,然后获取标记的修订版,但是当我在 git gui 中查看结果时(可视化所有分支) 这两个标签在一次提交时显示为 float (不绑定(bind)到主干或彼此)。

不确定它是否相关,但我在 Windows 7 64 位机器上使用 msysgit(git 版本 1.7.3.1.msysgit.0)。

很长的问题,我知道......我只是想说的很透彻。

最佳答案

只克隆主干而不克隆其他(git svn clone -T <a href="http://path/to/trunk" rel="noreferrer noopener nofollow">http://path/to/trunk</a>)可能更容易,然后通过修改配置文件并执行 git svn fetch 添加您想要的特定标签和分支es.

关于git - Git SVN 忽略路径如何工作(忽略每日构建标签)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6933748/

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