Ошибка Subversion: (метод 405 не разрешен) в ответ на MKCOL


65

При попытке добавления нового каталога я получаю следующую ошибку.

svn: Commit failed (details follow):
svn: Server sent unexpected return value (405 Method Not Allowed) in response to MKCOL request for '....

Я никогда не видел эту ошибку раньше. Как я могу решить эту проблему?

Решение
мне удалось решить проблему:

  • Удалите родительский каталог из папки, в которой возникла проблема.
  • Делаем SVN Update.
  • Папка с тем же именем, что и новая, уже существовала в хранилище.
  • Удалить эту папку.
  • SVN коммит.
  • Скопируйте новую папку, расписание для добавления и фиксации SVN.

Не хватает информации, такой как ваша конфигурация, ваш транспорт (HTTP / HTTPS), сообщения в журнале ошибок сервера (самое главное), если вы используете службу веб-кэширования между клиентом и сервером и т. Д.
Джулиано,

7
Пожалуйста, добавляйте решения в качестве ответов, а не добавляйте к вопросу
Сэм Коган

3
Я ненавижу SVN, давая ошибки и останавливаться. Похоже, ребенок все время хныкает. Я вернул, чем добавил, то совершил и волшебным образом принял.

Для хранилища кода Google см. - stackoverflow.com/a/32636072/1406510
nanosoft

Ответы:


44

Эта ошибка обычно указывала на то, что папка, которую вы пытаетесь добавить, уже существует в репозитории - вы недавно сделали обновление или сделали нерекурсивную проверку для начала?

Ранее я сталкивался с этой ошибкой - нашел блог, в котором рассказывалось, в чем проблема. Решение было немного более сложным, удалите соответствующий каталог из моей рабочей копии (скопировав его в другое место), запустите рекурсивное обновление, затем объедините эти два каталога вместе вручную.

Изменить: Opps - уже ответил в теле вопроса. И тут меня все взволновало, что я знал ответ на без ответа вопрос :)


@ Андрей - ну, вы правильно ответили на вопрос ... @ Серхио должен был ответить на свой вопрос.
Джош

8

У меня была похожая проблема с MKACTIVITY на GoogleCode. Это потому, что я проверил хранилище с http :, но для регистрации требуется https :.


Отличный улов - я как раз собирался вызвать ярость нетерпеливого программиста на моей машине. :) Вам нужно либо перепроверить папку с помощью https: (или, если вы неуклюже очистите папку, кроме .svn, затем измените содержимое записей .svn /, в которых указана ссылка http => https. Теперь на экране коммита будет показан https URL.)
Гишу


5

Я получил ту же ошибку и сумел ее устранить:

  1. SVN Переименуйте проблемный каталог в 'foo' или что-то еще
  2. SVN Commit
  3. SVN переименовать обратно на имя, которое вы хотите
  4. SVN Commit

Я не уверен, что это работает во всех случаях, но это проще, чем удаление родительского каталога.


Это простое решение решило мою проблему. Большое спасибо! :)
Консуэла

4

Ваш репозиторий svn разрешает коммиты через HTTP? Некоторые репозитории, такие как SourceForge, разрешают анонимную проверку через HTTP, но требуют, чтобы разработчики зарегистрировались через svn и SSH.


3

В моем случае у меня были проблемы с проверкой файлов в папке. Я следовал за шагами, изложенными Серхио, с некоторыми изменениями.

  1. Скопировал проблемный родительский каталог.
  2. Удаленные файлы .svn в скопированном каталоге
  3. svn delete / parent_directory
  4. совершить
  5. Создать новый каталог в репо
  6. совершить
  7. Переместить подкаталоги из скопированного каталога в репозиторий
  8. совершить
  9. Копировать отдельные файлы
  10. совершить

У меня было несколько файлов, с которыми у меня были проблемы. Я оставил их из хранилища, но воссоздал их с новым именем.


2

У меня была эта проблема, когда я удалял из каталога форму SVN, а затем воссоздал ее, когда я зафиксировал новый добавленный каталог, SVN выдал эту ошибку. Я решил проблему, запустив SVN в новом добавленном каталоге, а затем разрешил конфликты вручную .


1

Используя Unfuddle, размещенный сервис svn, я неоднократно вижу эту ошибку, когда .svn растоптан копированием файла в искателе OS X. Заклинание SVN, которое работало на меня:

  • возвращаться
  • Обновить
  • удалить папку с помощью удаленного URL
  • добавить и зафиксировать папку

0

В моем случае я добавлял новый каталог, который, как предполагалось, мои локальные (клиентские) метаданные уже находились на сервере, а программа очистки не исправила его. Я сделал резервную копию всех новых и измененных файлов, удалил все (кроме корневой папки .svn), запустил обновление, чтобы восстановить файлы, и скопировал обратно в каталог новые и измененные файлы, для которых я создал резервную копию. Я добавил новые файлы снова и успешно зафиксировал.


0

В Eclipse это легко исправить.

Команда> Переключиться на другой тег / ветку

Выберите, полностью рекурсивный и установите флажок Изменить рабочую копию на указанную глубину.

Нажмите ОК

Значок папки изменится. Щелкните правой кнопкой мыши и (команда>) Марк Разрешен.

Вот и все, теперь вы можете совершить.


Помните, что Eclipse является инструментом разработки, а не объектом внимания ServerFault.
Андрей Б

0

Сделайте резервную копию папки.
Удалите папку в хранилище (используя Repo-Browser).
Совершить снова.

У меня отлично работает.
Маркус


0

У меня была похожая проблема, я сделал резервную копию каталога (только для безопасности), чем обновить папку SVN. после этого я мог бы совершить снова. (и не использовал мой бэкап)


-1

У меня была проблема с e175002 200 OK. Но я прочитал, что путь в сообщении об ошибке говорит о неправильном сервере, поэтому URL моего транка был не очень хорошим ( http: // localhost: 80 / path / to / my / trunk / )… подождите! ЛОКАЛЬНОСТЬ ?! ... И теперь я понимаю, что это потому, что на моем первом обороте мои настройки отправили файлы моего проекта в мой репозиторий локально ... Итак, на вашем первом обороте убедитесь, что ваши настройки для IP вашего сервера не неправильные, потому что после этого ... ваш Репо будет содержать неверную информацию, и вам нужно будет найти способ изменить эти неверные настройки на нем или на каждом клиенте, который хочет использовать ваше репо в первый раз.

Мое исправление заключалось в проверке каждой папки моего проекта. в каждой папке есть папка .svn, в которой хранится информация, а в каждой папке .svn есть файл с именем «записи»… В этом файле есть путь к серверу, я заменил плохую строку хорошим IP во всех сохраненных записях в каждой папке .svn. И тогда больше нет ошибок.

Надеюсь, это поможет. :) извините, если трудно понять мой пост ^^ 'Я стараюсь.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.