Запрещенные папки в Subversion - PullRequest
128 голосов
/ 21 мая 2009

Что, черт возьми, означает «загораживать», когда вы пытаетесь зарегистрироваться в Subversion? Я вижу две папки красного цвета с текстом «заблокирован». Я не понимаю, что это значит где-то в документах.

Когда я пытаюсь выполнить команду cleanup, я получаю «имя папки не является рабочим каталогом». Это папка, которую я только что создал в VS, и когда я пытаюсь добавить ее в Subversion, она выдает мне эту ошибку. Все остальные папки в порядке.

Ответы [ 16 ]

111 голосов
/ 21 мая 2009

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

Сначала попробуйте выполнить очистку, и если это не решит проблему, верните (или обновите) каталог, чтобы восстановить папки .svn подкаталога.

9 голосов
/ 21 мая 2009

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

Если вы используете tortoisesvn, вы получаете возможность «экспортировать не версионные файлы», но я думаю, что если вы делаете это из командной строки, он экспортирует только версионные файлы, так что у вас может возникнуть трудоемкая задача: версионные файлы вручную.

После этого проверьте чистую рабочую копию, а затем поместите экспортированную резервную копию поверх нее. Очень важно, чтобы в резервной копии не было папок .svn.

Я видел эти ошибки раньше, когда люди извлекали рабочие копии внутри других рабочих копий или чего-либо еще, что повреждает записи .svn.

5 голосов
/ 08 февраля 2012

Была такая же проблема и исправлена ​​так:

  • переименовано в загроможденный каталог
  • создал каталог с его оригинальным именем в SVN (например, svn mkdir)
  • обновил родительскую папку, поэтому вновь созданный каталог появляется в моей рабочей копии
  • скопировал файлы из заблокированного в недавно созданный каталог и передал их
4 голосов
/ 21 декабря 2011

Если вы работаете в системе * nix, убедитесь, что вы не создали файл, добавьте его в SVN, затем удалите его, заменив его папкой с тем же именем. Не помогает ОП, но, надеюсь, это спасет кого-то от стресса.

1 голос
/ 01 августа 2017

Я также видел это в Windows, когда создал символическую ссылку на каталог репозитория; в этом случае корень хранилища рассматривается как «заблокированный». Это, похоже, никак не влияет.

Шаги для воспроизведения:

  1. Оформите репо

    svn checkout --force http://svn.server.hostname/path/to/repo/and/plugin_dir
    
  2. Убедитесь, что с вашим каталогом все в порядке

    cd plugin_dir
    svn st -u
    

    Вывод должен быть

    Status against revision: 1234
    
  3. Создать символическую ссылку (которая показывает проблему)

    cd ..
    mklink /d link_dir plugin_dir
    cd link_dir
    svn st -u
    

    Вывод будет

    ~           1234  .
    Status against revision: 1234
    
1 голос
/ 03 апреля 2015

Столкнулся с этой проблемой на компьютере с Windows.

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

Я просто удалил эту папку и запустил обновление из корня (этой папки). Работало нормально.

Команды, такие как очистка и т. Д., У меня не работали.

Несколько слов предостережения:

  1. Это дорого, если папка большая.
  2. Это приведет к тому, что вы потеряете все свои изменения, если они есть.

Всего наилучшего.

1 голос
/ 27 июня 2013

Существуют различные варианты сценария, которые могут вызвать эту ситуацию. Вот один пример:

Я закончил с! отметьте каталог, который был переименован с www на www_a без использования команды svn rename:

  1. Переименовать текущий каталог с оригинальным именем, например, www_b
  2. Переименовать www_a обратно в www
  3. Убедитесь, что вы делаете 'svn update' или 'svn revert' внутри каталога www
  4. Удалите актуальный каталог www без , используя 'svn delete'
  5. Перейдите в родительский каталог и введите 'svn update'
  6. Это восстановит исходный каталог www
  7. На этот раз используйте svn rename, чтобы переименовать www в www_a
  8. Переименовать www_b обратно в www
  9. Используйте 'svn add', чтобы добавить его в хранилище

На этом этапе вы должны получить правильный рабочий каталог svn. И узнайте одну или две вещи о том, как устранить путаницу в каталоге svn.

1 голос
/ 02 марта 2012

У меня ничего не получалось, поэтому я сделал следующее:

  • экспортировано с неверсионными файлами в новом месте
  • переименовал существующую папку
  • переместил папку из места экспорта в проект
  • переименовал новую папку
  • добавить, зафиксировать
  • удалил старую, переименованную папку
  • переименовал новую папку
  • коммит
1 голос
/ 21 мая 2009

Это означает, что по какой-то причине возник конфликт во время операции. Проверьте, существует ли существующий неверсионный файл или папка с тем же именем, что и версионный.

(Перефразировано из файла помощи клиенту Tortoise SVN)

0 голосов
/ 26 апреля 2016

Это произошло со мной, когда я заменил файл папкой с точно таким же именем. Решается удалением старого файла, фиксацией, а затем добавлением нового. Немного хакерский, но у меня сработало :) 1001 *

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...