我正在尝试使用git克隆svn存储库。存储库每天都有标记,我想忽略它。我正在尝试使用“忽略路径”选项来实现这一点,但我仍然将每日构建标记作为我的存储库中的分支。
最近也有一个类似的问题(但到目前为止还没有回答)是:How to git svn fetch only branches/tags with certain patterns?
存储库布局- https://test.kuali.org/svn/rice
一般储存库结构
1
<代码>H 119标记2<代码>H 220<代码>H 121旧<代码>F 122<代码>H 123旧标记1<代码>H 224H 125旧标记
- builds
- Daily build 1
- Daily build 2
trunk我试过的
我并不擅长正则表达式,它们可能是错误的,但下面是我尝试过的:
这只是我在git文档中发现的一个修改版本:
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一般思想和问题
,
,我不确定忽略路径正则表达式匹配的是什么。它是svn存储库(标记/构建/每日构建1)的相对路径吗?它是对项目中的每个文件(标记/构建/每日构建1/文件1,标记/构建/每日构建1/文件2)还是仅仅在分支/标记级别(标记/构建/每日生成1)进行评估?它包括存储库基url (https://test.kuali.org/svn/rice/tags/builds/Daily build 1)吗?除了-- and布局(为将得到我想要的标记指定正则表达式)之外,还有其他的事情吗?,我只对主干和某些发布标签感兴趣。有什么更好的方法吗?我尝试过只使用主干进行克隆,然后在配置中添加一个"fetch=“,只添加我关心的标记,然后获取标记的修订,但是当我在git gui (可视化所有分支)中看到结果时,两个标记显示为浮动的,只有一个提交(不绑定到主干或彼此)。不确定它是否相关,但我在windows 7 64位机器上使用msysgit (git版本1.7.3.1.msysgit.0)。
很长的问题,我知道..。我只是想彻底了解一下。
发布于 2011-08-04 07:06:46
简单地克隆主干和其他东西(git svn clone -T http://path/to/trunk),然后通过修改配置文件并执行git svn fetches来添加特定的标记和分支可能会更容易。
https://stackoverflow.com/questions/6933748
复制相似问题