具有奇怪目录层次结构的Git svn clone

时间:2011-03-09 08:23:07

标签: svn git git-svn

我们有一个SVN存储库,它具有以下结构:

https://xxxxxx.com/svn/foo/project/trunk/app/STUFF_I_WANT
https://xxxxxx.com/svn/foo/project/branches/dev/BRANCH_NAME/bar/STUFF_I_WANT

STUFF_I_WANT当然是我想要的东西。主干中的STUFF_I_WANT遵循与分支中的STUFF_I_WANT相同的层次结构。 BRANCH_NAME是变数。 “bar”目录始终存在于任何分支中 - 换句话说,而不是像主干中的“app”,分支中项目的父文件夹称为“bar”。此外,“bar”中可能还有许多其他不相关的子目录。

我可以查看行李箱,各个分支也很好。但是,我仍然完全难以检查行李箱,同时仍然允许它跟踪树枝。我已经尝试了许多不同的命令,但它们最终都给了我一个只有零或一个提交的回购。不断打印到控制台的主要错误是“找不到revmap”。

我在git svn init / clone上尝试了以下所有变种,但无济于事 - 它们都产生了我上面提到的相同结果。

git svn clone -$(svn log -q --limit 1 $SVN_URL | awk '/^r/{print $1}') $SVN_URL -T trunk/app -b branches/dev/*/bar

git svn clone -$(svn log -q --limit 1 $SVN_URL | awk '/^r/{print $1}') $SVN_URL -T trunk/app -b branches/dev

git svn init $SVN_URL -T trunk/app -b branches/dev

最后一个,我通过编辑.git / config跟进 branches = ipssdt / branches / dev / / ccix:refs / remotes / 但它没有不管怎样。

1 个答案:

答案 0 :(得分:1)

尝试

git svn init $SVN_URL -T trunk/app -b 'branches/dev/*/bar'

我不确定它会做正确的事情,所以然后转到.git / config并检查选项。我相信他们应该是:

fetch = trunk/app:refs/remotes/trunk
branches = branches/dev/*/bar:refs/remotes/branches/*

文档明确说明{sub}分支路径内的任何地方都支持*,而不仅仅是在最后,但你仍然必须指定branch-git的确切路径svn无法猜测分支是实际上在你指定的子目录中。