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

Sha*_*aun 14 git git-svn msysgit

我正在尝试使用git svn克隆一个svn存储库.存储库具有标记的每日构建,我想忽略它.我试图使用"ignore-paths"选项来做到这一点,但我仍然将每日构建标记作为我的存储库中的分支.

这里有一个非常近期和类似的(但迄今未解答的)问题: 如何git svn只获取具有某些模式的分支/标签?

存储库布局 - 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
Run Code Online (Sandbox Code Playgroud)

这是我试图简化:

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

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

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

然后我切换到更新版本,以便更快完成,并尝试忽略所有分支和标签进行测试.这个似乎没有得到任何分支和标签,但它也从未完成.它似乎冻结了(至少,它的运行时间超过了我认为应该只有一两天的历史):

git svn clone -r21846:HEAD --prefix=svn/ --stdlayout --ignore-paths="^tags*|^branches*" https://test.kuali.org/svn/rice
Run Code Online (Sandbox Code Playgroud)

我试过的最后一个是:

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
Run Code Online (Sandbox Code Playgroud)

一般思考和问题

  1. 我不确定ignore-paths正则表达式到底匹配什么.它是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. 我只对trunk和某些发布标签感兴趣.有没有更好的方法来获得这些?我只尝试使用trunk进行克隆,然后在配置中添加"fetch ="以仅添加我关注的标记,然后获取标记的标记,但是当我在git gui中查看结果时(可视化所有分支) )这两个标签显示为具有单个提交的浮动(未绑定到主干或彼此).

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

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

Mat*_*rog 5

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

  • 我想知道他们存储库中的某些内容是否导致 git svn 出现问题。我在主干上追踪了他们的历史(带着他们的鱼腥味),以找到在主干外创建另一个标签的位置,但它没有回到标签那么远。我在trunk上发现的最早的commit有一条消息:“Trunk已经死了,Trunk万岁。Trunk将像凤凰一样从灰烬中复活。” (2认同)