SVN 405 Метод не разрешен

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

svn: сервер отправил неожиданное возвращаемое значение (метод 405 запрещен) в ответ на запрос MKCOL для '/ svn / www /! svn / wrk / 9de0d765-2203-456c-af16-58e792ec7ac0 / trunk / htdocs / solutions / medical'

Я провел бесчисленное количество чисток, коммитов, обновлений и т. Д. Ничто не решает проблему. Идеи?

К вашему сведению, у меня нет возможности переименовать папку верхнего уровня.


person roadsunknown    schedule 30.08.2010    source источник
comment
Я попытался сделать то же самое при попытке удалить подкаталог, чтобы я мог игнорировать его должным образом. Каким-то образом это разрешилось само собой, и я действительно не знаю, какая таинственная комбинация элементов совпала, чтобы позволить это, поэтому я отказался от своего вопроса. Мой новый вопрос: почему мы не все просто используем git?   -  person icedwater    schedule 01.08.2013


Ответы (11)


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

person Sharjeel Aziz    schedule 30.08.2010
comment
Я проверил это на другой проверенной версии. Почему моя рабочая копия не обновлялась, я не могу определить. - person roadsunknown; 01.09.2010
comment
Так было и здесь, но мне пришлось проверить папку в отдельной папке (точнее, я переименовал ее в foo и svn up'd и вернул ее, включая удаленную папку, несмотря на то, что я успешно удалил ее. ) - person Kalle; 29.03.2012
comment
@Shaji: Я понимаю ваш случай. Но как я все еще могу быть совершенным из-за этой ошибки? Или есть способ сделать, пожалуйста, скажите мне. Спасибо. - person Huy Tower; 27.06.2014
comment
Выполните обновление SVN в папке, а затем повторите попытку фиксации. - person Alex R; 25.05.2015
comment
Это досадная ошибка. Я проверил новый репозиторий на Github и зафиксировал новую папку. Всегда показывает одну и ту же ошибку. Пробовал ваше решение, но оно не работает. - person emeraldhieu; 06.07.2015

Самый быстрый способ исправить это - продублировать затронутую папку и зафиксировать ее с альтернативным именем. Тогда svn mv duplicateFolder originalFolder. Очень легко.

Итак, возьмите папку1 и сделайте папку1 Копировать:

svn delete folder1
svn add folder1Copy

Зафиксировать и обновить:

svn mv folder1Copy/ folder1/

Зафиксируйте снова, и это исправлено.

person TuK    schedule 08.11.2011
comment
Это отлично сработало для меня и намного проще, чем иметь дело со второй рабочей копией. - person Justin; 25.05.2012
comment
Надеюсь, commit & update не является буквальной командной строкой ... в Unix, которая попытается сделать и то, и другое параллельно. - person LarsH; 04.10.2012
comment
Великолепно, добрый сэр, если вы приедете в Саннивейл и каким-то образом найдете меня, я куплю вам кофе. - person Michael Voznesensky; 27.11.2014

Моя "исчезнувшая" папка была libraries/fof.

Если бы я удалил его, а затем запустил обновление, оно бы не появилось.

cd libaries
svn up

(Ничего не произошло).

Но обновление с фактическим именем:

svn update fof

сделали свое дело, и он был обновлен. Так что я взорвал свою (вручную заархивированную tar) рабочую копию поверх нее и повторно принял. Самое простое решение.

person Riccardo Zorn    schedule 15.05.2013
comment
Согласитесь, это самый простой способ. Просто выполните svn up [папка] вместо svn up. - person Dimitris; 16.08.2013
comment
Это решение сработало для меня. Спасибо. - person Miguel Rentes; 13.08.2015

Я только что исправил это в собственном репозитории. Я использую TortoiseSVN в Windows, поэтому я не совсем уверен, в какие команды это переводится в командной строке, но вот что я сделал:

Проблемная папка называется lib, и она должна была быть добавлена.

  • Сначала я отменил добавление, чтобы SVN больше не обращал на него внимания.
  • Затем я переименовал его (в libs, это не имеет значения) с помощью контекстного меню Windows, добавил и успешно зафиксировал.
  • Наконец, я переименовал его обратно в lib с помощью контекстного меню TortoiseSVN (это, вероятно, важно) и снова зафиксировал.
person andronikus    schedule 01.09.2011

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

Сценарий:

  1. Прежде, чем я зафиксирую код, ревизия: 100
  2. (Кто-то еще фиксирует код ... версия увеличена до 199)
  3. Я (забыл запустить "svn up",) фиксирую код, теперь моя ревизия: 200
  4. Бегу "svn up".

Произошла ошибка.

Решение:

  1. $ mv current_copy copy_back # Переименовать текущую копию кода
  2. $ svn checkout current_copy # Проверить еще раз
  3. $ cp copy_back / current_copy # Восстановить ваши изменения
person Siwei    schedule 09.09.2011

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

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

cp -rp target ~/other/location/target-20111108
svn rm target --force
cp -rp ~/other/location/target-20111108 target-other-name
cd target-other-name
find . -name .svn -print | xargs rm -rf
cd ..
svn add target-other-name
svn ci -m "Re-re-re-re-re-re-re-re-re-re import target"
svn mv target-other-name target
svn ci -m "Re-re-re-re-re-re-re-re-re-re import target"
person Brad Knowles    schedule 08.11.2011
comment
Это единственный способ убедиться. - person TomDestry; 29.05.2014

Если вы используете code.google.com для размещения своего репозитория Subversion.

Вы знаете, что ниже, не так ли?

If you plan to make changes, use this command to check out the code as yourself using HTTPS:

# Project members authenticate over HTTPS to allow committing changes.
svn checkout https://.../svn/trunk/ user-...

When prompted, enter your generated googlecode.com password.
Use this command to anonymously check out the latest project source code:

# Non-members may check out a read-only working copy anonymously over HTTP.
svn checkout http://.../svn/trunk/ ...-read-only

Ошибка, которую вы упомянули, именно вы используете Non-members may check out a read-only working copy anonymously over HTTP статус. Следовательно, вы пока не можете совершать или делать что-либо.

Вы должны использовать Project members authenticate over HTTPS to allow committing changes вещь.

Теперь все будет хорошо.

person Huy Tower    schedule 27.06.2014

Я столкнулся с той же проблемой и смог ее исправить:

  1. Скопируйте папку в другое место.
  2. Удалить .svn из скопированной папки
  3. Щелкните правой кнопкой мыши исходную папку и выберите «SVN Checkout».
  4. Если вы не можете найти (3), то ваш случай отличается от моего.
  5. Посмотрите, правильный ли каталог в REPO-BROWSER. В моем случае причина была именно в этом.
  6. Проверить
  7. Верните файлы из скопированной папки в исходный каталог.
  8. Совершить.
person awan.soekamto    schedule 31.12.2013

Это означает, что папка / файл, который вы пытаетесь поместить в svn, уже существует там. Мой совет: прежде чем что-либо делать, просто щелкните правой кнопкой мыши папку / файл и выберите репо-браузер. Сделав это, вы сможете увидеть все файлы / подпапки и т. Д., Которые уже присутствуют в svn. Если требуемый файл / папка отсутствует в svn, вы просто удаляете (после создания резервной копии) файл, который хотите добавить, а затем запускаете обновление.

person Kaveesh Kanwal    schedule 10.11.2014

Добавленный в данный момент каталог уже зафиксирован в репозитории. Поэтому удалите каталог в репозитории и снова зафиксируйте тот же каталог.

person saravanabawa    schedule 02.04.2013

Я получил эту ошибку, потому что я заменил URL-адрес новым, заканчивающимся на "/". Я имею в виду запись в базе данных wc.db в папке .svn в таблице REPOSITORY.

Когда я удалил знак: "/", ошибка исчезла.

person Bronek    schedule 26.04.2020