Git SVN клон с причудливой иерархией каталогов - PullRequest
2 голосов
/ 09 марта 2011

У нас есть 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".Кроме того, внутри "бара" может быть несколько других не связанных подкаталогов.

Я могу проверить ствол и отдельные ветви просто отлично.Тем не менее, я совершенно тупик при проверке ствола, в то же время позволяя ему отслеживать ветви.Я пробовал несколько различных команд, но все они в итоге дают мне репо с нулевым или одним коммитом внутри.Основная ошибка, которая продолжает выводиться на консоль, это «Не удалось найти файл ревма».

Я пробовал все следующие варианты 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, получив branch = ipssdt / branch / dev / / ccix: refs / remotes/ но это тоже не сработало.

1 Ответ

1 голос
/ 09 марта 2011

Попробуйте

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/*

В документации прямо сказано, что * поддерживается в любом месте внутри пути ветви subversion, а не только в конце, но вам все равно нужно указать точный путь к ветви - git svn не может догадаться, что ветка действительно находится в подкаталог того, что вы указали.

...