【问题标题】:How do Git SVN ignore-paths work (ignoring daily build tags)?Git SVN 忽略路径如何工作(忽略每日构建标签)?
【发布时间】:2011-10-19 12:15:23
【问题描述】:

我正在尝试使用 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. 我不确定忽略路径正则表达式与什么匹配。它是 svn 存储库的相对路径(tags/builds/Daily build 1)吗?它是针对项目中的每个文件(标签/构建/每日构建 1/文件 1、标签/构建/每日构建 1/文件 2)还是仅在分支/标签级别(标签/构建/每日构建 1)进行评估?它是否包含存储库基础 url (https://test.kuali.org/svn/rice/tags/builds/Daily build 1)?

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

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

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

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

【问题讨论】:

  • 你有没有找到解决办法?

标签: git git-svn msysgit


【解决方案1】:

只克隆主干而不是其他任何东西 (git svn clone -T @987654321@) 可能更容易,然后通过修改配置文件并执行 git svn fetches 添加您想要的特定标签和分支。

【讨论】:

  • 我之前尝试过,但两个分支最终浮动并且没有连接到主干。我已经有一段时间没有这样做了,所以我决定按照以下指南再次尝试:stackoverflow.com/questions/296975/… - 我又得到了相同的浮动分支。我什至按照您的回答尝试修复它,但在您回答的第 3 步中,我的差异不为空。
  • 我想知道他们存储库中的某些东西是否导致 git svn 出现问题。我在树干上(带着他们的鱼)追踪了他们的历史,找到了另一个标签在树干上创建的位置,但它并没有追溯到标签。我在trunk 上找到的最早的提交有一条消息:“Trunk 已死,Trunk 万岁。Trunk 将像凤凰一样从灰烬中复活。”
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-11-17
  • 1970-01-01
  • 1970-01-01
  • 2017-07-16
  • 1970-01-01
相关资源
最近更新 更多