Удаление ветки SVN

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

+72
источник поделиться
7 ответов

Конечно: svn rm нежелательная папка и фиксация.

Чтобы избежать этой ситуации в будущем, я бы выполнил рекомендуемый макет для проектов SVN:

  • Поместите свой код в /someproject/trunk (или просто /trunk, если вы хотите поставить только один проект в репозитории)
  • Созданы ветки как /someproject/branches/somebranch
  • Поместите теги под /someproject/tags

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

1 Если вы не знаете, что делаете, в этом случае вы знаете, как создавать мелкие рабочие копии.

+87
источник

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

svn rm branches/< mybranch >

svn ci -m "message"

Если вы хотите сделать это в репозитории, а затем обновите его, чтобы удалить его из своей рабочей копии, вы можете сделать что-то вроде:

svn rm http://< myurl >/< myrepo >/branches/< mybranch >

Затем запустите:

svn update
+47
источник

Для тех, кто использует TortoiseSVN, это можно сделать с помощью браузера репозитория (он помечен как "Repo-browser" в контекстном меню.)

context menu

Найдите папку ветки, которую вы хотите удалить, щелкните ее правой кнопкой мыши и выберите "Удалить".

deleting the folder

Введите сообщение о фиксации, и все готово.

committing

+36
источник

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

svn rm "^/reponame/branches/name_of_branch" -m "cleaning up old branch name_of_branch"

^ не подходит для URL-адреса пульта, как показано в "svn info". Двойные кавычки необходимы в командной строке Windows, потому что ^ является специальным символом.

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

+7
источник

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

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

Либо каждый проект создает соединительную линию, ветки, папку тегов при их создании.

svn
+ project1
  + trunk
    + src
    + etc...
  + branches
    + features
      + src
      + etc...
  + tags
+ project2
  + trunk
  + branches
  + tags
+2
источник

Из рабочей копии:

svn rm branches/features
svn commit -m "delete stale feature branch"

+2
источник

Команда для удаления ветки выглядит следующим образом:

svn delete -m "< ваше сообщение > " < branch url >

Если вы не хотите получать/проверять весь репо, выполните следующую команду на своем терминале:

1) получить абсолютный путь каталога, который будет содержать вашу рабочую копию
> PWD
2) Запустите проверку кода svn
> svn checkout < branch url > < абсолютный путь от точки 1 >

Вышеупомянутые шаги предоставят вам файлы внутри папки ветки, а не всю папку.

+1
источник

Посмотрите другие вопросы по меткам или Задайте вопрос