Подтвердить что ты не робот

Git svn show-ignore дает ошибку "команда возвратила ошибку: 1"

Я пытаюсь перенести проект из SVN на git. Это команда, которую я использую:

$ git svn clone http://oursvnserver/ --no-metadata -A ../authors-transform.txt --trunk=path/to/trunk --branches=path/to/branches --tags=path/to/tags . --username=mysvnusername --prefix=origin/

Текущий каталог - это каталог, в котором я хочу стать репозиторием. authors-transform.txt определенно находится в правильном месте. Проект использует стандартный макет, но он не существует в корне репозитория. (К сожалению, кто-то давно начал практиковать просто набивание всех проектов в один и тот же репозиторий. Поэтому я указываю --trunk, --branches и --tags.) Кажется, это хорошо. Затем я пытаюсь создать файл игнорирования и получить эту невероятно загадочную ошибку:

$ git svn show-ignore
config --get svn-remote.svn.fetch :refs/remotes/git-svn$: command returned error: 1

Кажется, в этом процессе выполняется какая-то другая команда, поэтому я сделал несколько догадок:

$ git config --get svn-remote.svn.fetch :refs/remotes/git-svn || echo $?
1
$ git config --get svn-remote.svn.fetch :refs/remotes/git-svn$ || echo $?
1

Так что, может быть, я догадываюсь о том, какую команду он вызывает? Но это действительно не помогает.

Что означает эта ошибка? Что я могу попытаться разрешить?

Использование msysgit 1.9.4.

4b9b3361

Ответ 1

Таким образом, это вызвано тем, что git не может найти соответствующую запись fetch в разделе svn-remote файла $GIT_DIR/config. Без аргумента git svn show-ignore он не знает, что искать в этом разделе. (Может быть, мое отслеживание не настроено правильно?)

Чтобы справиться с этим, вам нужно сначала указать, на каком удалении вы хотите посмотреть:

git svn show-ignore --id=origin/trunk

(Обратите внимание, что я задал префикс "происхождение" при выполнении клона. Обозначьте свою команду соответственно.)

Во-вторых, это все еще не удалось с очень похожей ошибкой для моих ветвей. Он отлично работал для ствола, но не для веток. Это связано с тем, что для ветвей не было fetch. Чтобы добавить их, используйте эту команду (с настройками для префикса):

git config --add svn-remote.svn.fetch path/to/branches/branchname:refs/remotes/origin/branchname

Чтобы просмотреть все записи fetch и убедитесь, что они сработали:

git config --get-all svn-remote.svn.fetch

Я не уверен, почему только начало для trunk устанавливается в начале; возможно, я сделал что-то не так с клоном.