Как удалить проект SVN из репозитория SVN - PullRequest
30 голосов
/ 09 ноября 2011

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

Ответы [ 9 ]

47 голосов
/ 09 ноября 2011

этот ответ может сбить с толку

прочитайте комментарии к этому сообщению и убедитесь, что это то, что вы ищете 'svn delete' работает против содержимого репозитория, а не против самого репозитория. для обслуживания хранилища (например, для полного удаления) вы должны использовать svnadmin. Однако есть причина, по которой svnadmin не имеет подкоманды delete. Вы можете просто

rm -rf $REPOS_PATH

на сервере svn,

где $ REPOS_PATH - путь, который вы использовали для создания своего хранилища с помощью

svnadmin create $REPOS_PATH
10 голосов
/ 30 января 2013

«Obliberating» содержимого из хранилища svn, то есть стирание этого содержимого с диска, может быть сделано, как описано в этой статье http://www.limilabs.com/blog/how-to-permanently-remove-svn-folder

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

Работает путем (а) выгрузки содержимого репозитория в файл, (б) исключения некоторого содержимого и (в) очистки и повторного создания простого репозитория снова и, в конечном итоге, путем (d)загрузка отфильтрованного содержимого хранилища:

svnadmin dump "path/to/svnrepo" > svnrepo.txt                    // (a)
svndumpfilter exclude "my/folder" < svnrepo.txt > filtered.txt   // (b)
rm -rf "path/to/svnrepo" && svnadmin create "path/to/svnrepo"    // (c)
svnadmin load "path/to/svnrepo" < filtered.txt                   // (d)

Счетчик хранилища не изменяется этими операциями.Однако в вашем хранилище «пропущены» все номера ревизий, использованные для создания того содержимого, которое вы удалили на шаге (b).

Subversion 1.7.5, похоже, довольно хорошо справляется с этими "пропущенными" ревизиями.Например, используя «svn ls -r $ missing», выдает то же самое, что и «svn ls -r $ ((отсутствующий - 1))».

Вопреки этому мои (довольно старые) отчеты VIEWVC »без содержимого "при запросе" отсутствующей "ревизии.

9 голосов
/ 29 марта 2013

В случае, когда вы просто хотите удалить проект из ревизии head, чтобы он больше не отображался в вашем репо при запуске svn list file:///path/to/repo/, просто запустите:

svn delete file:///path/to/repo/project 

Однако, если вам нужно удалить все записи в репо, используйте другой метод.

7 голосов
/ 24 августа 2016

Мне тоже показалось, что принятый ответ немного вводит в заблуждение, поскольку может привести к непреднамеренному удалению пользователем нескольких проектов.Неверно утверждать, что слова Repository, Project и Directory являются неоднозначными в контексте SVN.У них есть определенные значения, даже если сама система не применяет эти значения.Сообщество и, что более важно, клиенты SVN имеют согласованное понимание этих терминов, которые позволяют им отмечать, разветвлять и объединять.

В идеале это поможет устранить любую путаницу.Как человек, которому пришлось перейти от git к svn для нескольких проектов, это может разочаровать, пока вы не узнаете, что ветвление SVN и проекты SVN действительно говорят о структурах папок.

Терминология SVN

Репозиторий

База данных коммитов и истории ваших папок и файлов.Репозиторий может содержать несколько «проектов» или не содержать проектов.

Проект

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

  • / project
    • / tags
    • / branch
    • / trunk

Примечание. Помните, что SVN-проект - это термин, используемый для определения конкретной папки в репозитории

Проекты в репозитории

Макет репозитория

  • http://svn.server.local/svn/myrepo

    • / skunkworks "Project" due to layout
      • / теги
      • / ветви
      • / ствол
    • / app1 "Project" due to layout
      • / теги
      • /ветви
      • / ствол
    • / fooproject "Project" due to layout
      • / теги
      • / ветви
      • / ствол
    • / regulardir <-- Not a "Project"
      • / subdir
  • http://svn.server.local/svn/myrepo2

    • / app2 "Project" due to layout
      • / теги
      • / ветви
      • / ствол

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

Удаление Репозитория может означать удаление нескольких Проектов !

Локальный каталог SVN (каталог .svn в корневом каталоге)

При использовании URL-адреса коммиты происходят автоматически.

Поскольку проект SVN действительно является определенной структурой каталогов, удаление проекта аналогично удалению каталога.

Управление репозиторием SVN

Существует несколько серверов SVN, доступных для размещения ваших репозиториев.Управление самими хранилищами обычно осуществляется через консоли администратора серверов.Например, Visual SVN позволяет создавать репозитории (базы данных), каталоги и проекты .Но вы не можете удалять файлы, управлять фиксациями, переименовывать папки и т. Д. Из консоли сервера, поскольку это специфические задачи SVN.Сервер SVN обычно управляет созданием хранилища.После создания хранилища и получения нового URL-адреса остальная часть вашей работы выполняется с помощью команды svn.

5 голосов
/ 09 ноября 2011

В svn нет понятия "проект". Так что не стесняйтесь удалять все, что вы считаете принадлежащим проекту.

2 голосов
/ 23 июля 2016

Легко поверить, что удаление всего хранилища Subversion требует «информирования» Subversion о том, что вы собираетесь удалить хранилище. Но Subversion заботится только об управлении хранилищем после его создания, а не о том, существует ли хранилище или нет (если это имеет смысл). Это происходит так: на инструменты и команды Subversion не оказывает негативного влияния простое удаление каталога репозитория с помощью обычных утилит операционной системы (например, rm -R). Каталог репозитория - это не то же самое, что каталог установленной программы, где удаление программы без ее удаления может привести к ошибочным файлам конфигурации или другим зависимостям. Репозиторий на 100% автономен в своем каталоге, и удаление его безвредно (кроме потери истории вашего проекта). Вы просто чистите планшет, чтобы создать новое хранилище Subversion и импортировать свой следующий проект.

1 голос
/ 01 марта 2013

Утилизация рабочей копии

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

Если вы, скорее всего, снова будете использовать рабочую копию, нет ничего плохого в том, чтобы просто оставить ее на диске, пока вы не будете готовы использовать ее снова, после чего все, что требуется, - это обновление svn для его обновления. и готов к использованию.

Однако, если вы определенно не собираетесь снова использовать рабочую копию, вы можете безопасно удалить всю эту вещь, используя любые возможности удаления каталогов, предлагаемые вашей операционной системой. Мы рекомендуем, прежде чем вы это сделаете, запустите svn status и просмотрите все файлы, перечисленные в его выводе, с префиксом? чтобы убедиться, что они не важны.

из: http://svnbook.red -bean.com / ru / 1.7 / svn.tour.cleanup.html

0 голосов
/ 16 декабря 2016

Правильное предложение: svnadmin deltify $ PATH. Не забывайте удалять проект или репозиторий из файла svn-acl (если вы его используете). если вы просто удалите папку хранилища, вы можете повредить каталог svn в зависимости от того, как настроен svn в вашей среде.

0 голосов
/ 07 июня 2016

Перейдите в Eclipse, нажмите «Окно» в строке меню, затем «Открыть перспективу -> прочее -> Исследование репозитория SVN -> Нажмите OK»

Теперь, после выполнения «Нажмите OK», вам нужно перейти к грузовику.(или место, где ваш проект сохраняется в SVN), затем выберите проект (который вы хотите удалить), затем щелкните правой кнопкой мыши -> Удалить.

Это удалит проект из Subversion.

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