regex - 如何在 git svn 中评估忽略路径?

标签 regex git git-svn ignore

我有一个像这样的简单 repo 结构:

trunk
    code
    othercode
    doc
    misc
branches
    b1
        code
        othercode
        doc
        misc
    b2
tags
    t1
    t2

我正在尝试使用 git svn 来克隆它,但想省略主干上的 docmisc + 所有标签和分支.但是,ignore-paths 选项并不像我预期的那样起作用。

ignore-paths = (doc|misc)

似乎可行,但我担心它还会排除像 trunk/code/proj1/doc/ 这样的路径,我想保留它。

ignore-paths = ^(doc|misc)

不起作用 -- docmisc 由初始 git svn fetch 命令引入。我如何获得一个只匹配根目录的工作正则表达式?手册页没有说明 ignore-paths 是否与最终位于 git clone 根目录的“相对”路径匹配(doc 等)或在 SVN 远程(branches/b1/doc 等)中看到的“完整”路径,或其他。

最佳答案

它似乎与 SVN 存储库中的完整路径匹配。这个包含 SVN 路径的 trunk/tags/branches 部分的正则表达式起到了作用:

ignore-paths = ^(trunk|tags/[^/]*|branches/[^/]*)/(doc|misc)/

换句话说:路径必须以以下之一开头:

  • 中继
  • tags/,可能后跟一个路径段(不包含/)
  • branches/,可能后跟一个路径段(不包含/)

... 然后是名为 docmisc 的路径段。

关于regex - 如何在 git svn 中评估忽略路径?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10448431/

相关文章:

regex - _ * 用法是scala模式匹配

javascript - 在 Javascript 中使用正则表达式作为条件

未找到 Git 命令,但它在那里

Git 找不到远程引用...但我也找不到

git - Hugo - 多语言支持错误

git - 我怎样才能找到我的 git 分支将提交到哪个 SVN 分支?

git - 获取当前本地分支的远程 git-svn 分支

git - 将 SVN checkout 转换为使用 git (git-svn)

R grep 使用向量中的元素的正则表达式

regex - 返回非字符串输出的 String.replace 函数