Видалення гілки 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 , ви можете досягти цього за допомогою браузера сховищ (у контекстному меню він позначений як "Repo-браузер").

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

Знайдіть папку гілки, яку потрібно видалити, клацніть правою кнопкою миші та виберіть "Видалити".

видалення папки

Введіть повідомлення про фіксацію, і все готово.

вчинення


Зробіть оновлення 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 / Branches / Branch-Name' не є робочою копією", тому, мабуть, мені ніколи не вдалося перевірити гілку, яку я зробив
Mad Bernard

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 <URL url> <абсолютний шлях від пункту 1>

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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.