it-roy-ru.com

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

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

83
GSto

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

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

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

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

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

99
Wim Coenen

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

svn rm branches/< mybranch >

svn ci -m "message"

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

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

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

svn update
54
grmartin

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

context menu

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

deleting the folder

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

committing

47
2rs2ts

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

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

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

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

8
CodeKid

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

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

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

svn
+ project1
  + trunk
    + src
    + etc...
  + branches
    + features
      + src
      + etc...
  + tags
+ project2
  + trunk
  + branches
  + tags
3
Chris Nava

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

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

3
sbi

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

svn delete -m "<ваше сообщение>" <URL-адрес филиала>

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

1) получить абсолютный путь к каталогу, в котором будет находиться ваша рабочая копия
> pwd
2) Начать проверку кода SVN
> svn checkout <филиал url> <абсолютный путь от точки 1>

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

2
Alvin Chettiar