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

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

121 голосов
/ 30 августа 2010

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

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

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

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

Ответы [ 10 ]

169 голосов
/ 30 августа 2010

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

56 голосов
/ 08 ноября 2011

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

Итак, возьмите folder1 и создайте папку 1Copy:

svn delete folder1
svn add folder1Copy

Фиксация и обновление:

svn mv folder1Copy/ folder1/

Подтвердите снова, и это исправлено.

10 голосов
/ 15 мая 2013

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

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

cd libaries
svn up

(ничего не происходит).

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

svn update fof

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

3 голосов
/ 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"
3 голосов
/ 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 # Восстановить ваши модификации
3 голосов
/ 01 сентября 2011

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

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

  • Сначала я отменил добавление, чтобы SVN больше не обращал внимания на это.
  • Затем я переименовал его (в libs, что не имеет значения) с помощью контекстного меню Windows, добавил его и успешно зафиксировал.
  • Наконец, я переименовал его обратно в lib, используя контекстное меню TortoiseSVN (это, вероятно, важно), и зафиксировал снова.
1 голос
/ 27 июня 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 вещь.

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

0 голосов
/ 10 ноября 2014

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

0 голосов
/ 31 декабря 2013

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

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

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

...