git-svn clone checkouts неправильный репо? - PullRequest
42 голосов
/ 21 сентября 2009

Итак, я пытаюсь перейти на git, используя git-svn. У меня svn репо с именем myrepo , из которого я хочу клонировать только проект с именем myproject . Дело в том, что запустив следующую команду:

git svn clone path-to-repo/myrepo/myproject --stdlayout --prefix=svn myproject

весь репо myrepo клонирован, а не только мой проект. Я также попытался использовать -T, -t, -b, чтобы git узнал о макете проекта, но безуспешно. Я всегда получаю следующий вывод:

Using higher level of URL: path-to-repo/myrepo/myproject => path-to-repo/myrepo

и пытается его клонировать. Я делаю что-то неправильно? Возможно, макет репозитория SVN может быть поврежден или несовместим с Git?

Ответы [ 4 ]

69 голосов
/ 24 сентября 2009

Вы можете попробовать опцию --no-minimize-url.

Согласно http://schacon.github.com/git/git-svn.html:

- нет-минимизируют-URL

При отслеживании нескольких каталогов (с использованием параметров --stdlayout, --branches или --tags) git svn будет пытаться подключиться к корню (или максимально допустимому уровню) хранилища Subversion. Это значение по умолчанию позволяет лучше отслеживать историю, если целые проекты перемещаются в хранилище, но может вызвать проблемы в хранилищах, в которых установлены ограничения на доступ для чтения. Передача --no-minimal-url позволит git svn принимать URL-адреса как есть, не пытаясь подключиться к каталогу более высокого уровня. Эта опция отключена по умолчанию, когда отслеживается только один URL / ветвь (это не принесет пользы).

2 голосов
/ 02 июня 2011

Тем временем у меня все работает с обычным -s переключателем:

git svn clone -s <svn_repo_url>

У меня также есть несколько ссылок на git-svn, которыми я хочу поделиться:

  1. http://justaddwater.dk/2009/03/09/using-git-for-svn-repositories-workflow/
  2. http://www.viget.com/extend/effectively-using-git-with-subversion/
  3. http://utsl.gen.nz/talks/git-svn/intro.html
  4. http://trac.parrot.org/parrot/wiki/git-svn-tutorial
0 голосов
/ 06 июня 2019

Убедитесь, что вы указали полный путь к myproject, похоже, что частичные пути плохо обрабатываются частью fetch операции клонирования. Вы можете использовать двоеточие в этом пути в Windows (например, c: \ myproject) (но не можете использовать двоеточие в пути к исходному хранилищу).

git svn clone path-to-repo/myrepo/myproject --stdlayout --prefix=svn myproject
0 голосов
/ 04 февраля 2010

.gitconfig хак может помочь, но я не знаю, как заселить после: http://thread.gmane.org/gmane.comp.version-control.git/127528/focus=127776

...