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


91

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


Возможный дубликат удаления ветки
Джим Дж.

Ответы:


110

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

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

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

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

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


58

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

svn rm branches/< mybranch >

svn ci -m "message"

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

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

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

svn update

26
из книги : «Удаление URL-адреса происходит немедленно, поэтому вы должны предоставить сообщение журнала [с -m]», поэтому svn rm -m message http://...и не updateтребуется
rymo

57

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

контекстное меню

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

удаление папки

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

совершение


Выполните обновление SVN, чтобы удалить папки с вашего диска (если они не были удалены перед удалением ветки)
ArieKanarie

12

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

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

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

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


Я использовал это с Mac, и он работал хорошо! Когда я попробовал верхний ответ, я получил ответ «'/ local / path / to / repo / branch / branch-name' не является рабочей копией», поэтому, по-видимому, мне так и не удалось проверить созданную мной ветку
Безумный Бернард

3

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

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

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

svn
+ project1
  + trunk
    + src
    + etc...
  + branches
    + features
      + src
      + etc...
  + tags
+ project2
  + trunk
  + branches
  + tags

3

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

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


3

Команда для удаления ветки следующая:

svn delete -m "<ваше сообщение>" <URL ветки>

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

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

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.