SVN 405 Метод не дозволений


122

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

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

Я провів незліченну кількість прибирань, порад, оновлень тощо. Ніщо не вирішує проблему. Ідеї?

FYI, у мене немає можливості перейменувати папку верхнього рівня.


Я намагався зробити те саме, намагаючись видалити підкаталог, щоб я міг правильно його ігнорувати. Якось він вирішив сам себе, і я не знаю, яке притаманне поєднання елементів збіглося, щоб дозволити це, тому я відкинув своє запитання. Моє нове: чому ми не просто всі використовуємо git?
крижана вода

Відповіді:


170

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


1
Я перевірив це в іншій перевіреній версії. Чому моя робоча копія не буде оновлена ​​разом із цим, я не можу визначити.
дорогиневідомі

1
Так було і тут, але мені довелося перевірити папку в окремій папці (вірніше, я перейменував її на "foo" і svn up'd і повернув її назад, включаючи "видалену" папку, незважаючи на успішне виконання про видалення.)
Калле

1
@Shaji: Я розумію твій випадок. Але як я все ще можу бути скоєний через цю помилку? Або все-таки робити, будь ласка, скажіть мені. Дякую.
Huy Tower

1
Зробіть оновлення SVN у папці, а потім спробуйте здійснити знову.
Алекс R

Це дратівлива помилка. Я перевірив нове сховище від Github і здійснюю нову папку. Це завжди показує однакову помилку. Спробували ваше рішення, але воно не працює.
смарагдовий

56

Найшвидший спосіб для мене це виправити - дублювати зазначену папку та виконувати її з альтернативною назвою. Потім svn mv duplicateFolder originalFolder. Досить легко.

Отже, візьміть папку1 і зробіть папку1Копіюйте:

svn delete folder1
svn add folder1Copy

Звернутись та оновити:

svn mv folder1Copy/ folder1/

Зробіть знову і це виправлено.


6
Це працювало чудово для мене і набагато простіше, ніж розгляд другої робочої копії.
Джастін

Сподіваємось, commit & updateце не буквальний командний рядок ... в Unix, який би намагався робити те й інше паралельно.
LarsH

1
Блискучий добрий сер, якщо ви приїдете в соняшней і якось знайдете мене, я вам куплю каву.
Михайло Вознесенський

10

Моя папка "зникла" libraries/fof.

Якщо я його видалив, а потім запустив оновлення, воно не відображатиметься.

cd libaries
svn up

(нічого не відбувається).

Але оновлення фактичним назвою:

svn update fof

зробив трюк, і він був оновлений. Тож я підірвав свою (копіювану в тарі архів) робочу копію над нею та повторно передав. Найпростіше рішення.


Погодьтеся, це найпростіше. Просто зробіть "svn up [папка]" замість "svn up".
Димитріс

Це рішення - це те, що працювало на мене. Дякую.
Мігель Рентес

4

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

Проблемна папка називається lib, і її потрібно було додати.

  • Спочатку я відкрутив додаток, так що SVN більше не звертав на це уваги.
  • Потім я перейменував його (до того libs, що це не має значення) за допомогою контекстного меню Windows, додав його та здійснив успіх.
  • Нарешті я перейменував його на libвикористання контекстного меню TortoiseSVN (це, мабуть, важливо), і знову здійснив.

3

Я також зараз зустрічався з цією проблемою і вирішував її таким чином. Тож я записав його тут, і бажаю, щоб він був корисним для інших.

Сценарій:

  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

У мене була подібна проблема. Я закінчив нукінг його з орбіти і втратив свою історію 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"

Це єдиний спосіб бути впевненим.
TomDestry

1

Якщо ви використовуєте 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

Я зіткнувся з тією ж проблемою і зміг її виправити:

  1. Скопіюйте папку в інше місце.
  2. Видалити .svn з скопійованої папки
  3. Клацніть правою кнопкою миші оригінальну папку та виберіть "SVN Checkout"
  4. Якщо ви не можете знайти (3), то ваш випадок відрізняється від мого.
  5. Перевірте, чи правильний каталог на REPO-BROWSER. Для мого випадку це було причиною.
  6. Перевіряти
  7. Поверніть файли з скопійованої папки в оригінальний каталог.
  8. Здійснити.

0

Це означає, що папка / файл, який ви намагаєтеся поставити на svn, вже існує. Моя порада - перед тим, як робити що-небудь, просто клацніть правою кнопкою миші на папці / файлі та натисніть репо-браузер. Роблячи це, ви зможете побачити всі файли / підпапки тощо, які вже є у svn. Якщо потрібного файлу / папки немає у svn, ви просто видаліть (після створення резервної копії) файл, який ви хочете додати, та запустіть оновлення.


0

Нещодавно доданий каталог вже зафіксований у сховищі. Тому видаліть каталог у сховищі та повторіть той самий каталог.


0

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

Коли я зняв знак: "/", помилка пішла.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.