Об’єднати гілку зі стовбуром


119

Використовуючи TortoiseSVN, мені потрібно внести зміни, які я зробив у гілці, а потім об'єднати їх із стовбуром.

Я єдиний розробник цього проекту, тому я знаю, що багажник не змінився. Я навчаюсь SVN, щоб з часом моя команда могла ним користуватися.

В основному, я хочу, щоб мій стовбур виглядав саме як гілка.

У світі перед svn я просто копіював би файли у своїй папці гілки, видаляв файли в папці магістралі, а потім копіював гілку у магістраль.

У TortoiseSVN, я спробував Reintegrate a branch, Merge a range of revisionsі Merge two different trees. Ніби насправді не змінюється багажник. Я також спробував розгалуження вгорі тулуба. Це дає мені помилку, кажучи, що магістраль вже існує.

Відповіді:


157

У вашому випадку:

  1. Переключити робочу копію на магістраль (SVN Switch)
  2. Об’єднайте гілку в робочу копію (SVN Merge)
  3. Переконайтесь, що все ще збирається і працює
  4. Закріпити робочу копію (багажник)
  5. Подумайте про вбивство гілки

У командному середовищі я б запропонував вам спочатку об'єднати останні модифікації з магістралі у вашій гілці, переконатися, що все збирається та працює, а потім виконувати описані вище кроки (що буде тривіально, оскільки ви вже перевірили зміни).


Оновлення

На кроці 5 я згадую про вбивство гілки. Це тому, що коли гілка від функції знаходиться в стовбурі, її слід вважати частиною стовбура. У такому випадку гілка повинна бути вбита, щоб ніхто не продовжував працювати над нею. Якщо для цієї функції потрібні значні зміни, слід створити для цього нову гілку.

Єдині гілки, які я не вбиваю, - це гілки обслуговування та випуску, якщо певний випуск більше не підтримується.

Незважаючи ні на що, ви завжди маєте доступ до кожної версії, тому вбивство гілки використовується лише для того, щоб інші розробники не могли розвиватися на мертвій гілці.


Коментар, який ви додали під кроком 5, міг би бути кращим кроком 1? Коли ви хочете скористатись "Реінтегрувати гілку" у діалоговому вікні "Злиття TortoiseSVN", спочатку необхідно об'єднати всі зміни зі стовбура (або базової гілки).
jbvo

1
Чи необхідний перший крок (переключення робочої копії на стовбур) лише якщо у вас немає окремої гілки та робочої копії стовбура?
Джефф Б

1
Я думаю, що тут є основна деталь, яку папку ви натискаєте на кожен крок, щоб ви знали контекст кожного кроку.
MacGyver

10

Думаю, в TortoiseSVN 1.8.5, Merge | Об’єднати два різних дерева повинно працювати. Коли ви об'єднуєте гілку / тег назад у стовбур, хитрість полягає в тому, що From URL - це стовбур, а To - тег / гілка. Дивно, але правда.

Джерело: Злиття

Для каталогів, які не знаходяться у вашій робочій копії, але знаходяться в тезі / гілці, ви можете отримати конфліктні помилки. Просто прийміть конфлікт і повторіть злиття.


Дотримуючись вказівок на сайті tortoisesvn, переконайтеся, що після злиття ви здійснюєте ствол, не змінюючи нічого. Я спробував зняти прапорці з кількох речей, які я не хотів, щоб вони були вчинені, що спричиняло деяке нерекурсивне попередження. Крім того, розгляньте можливість видалення гілки відповідно до інструкцій.
goku_da_master

6

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

У моєму використанні це більш типово для того, щоб тримати роботу ствола і відкручувати гілки під час складання. Тоді єдине злиття, яке мені колись потрібно зробити, - це виправити помилку зі стовбура та поставити його на останню гілку збірки та повторно випустити цю гілку. Найпростіший спосіб для мене це зробити, оскільки, як ви виявили злиття, в кращому випадку незграбний. Потрібно зберегти останню гілку і стовбур перевірену на моїй машині, а також буквально скопіювати файли з магістралі в гілку та перевірити обидва.


2
Значно обережно слід дотримуватися "копіювання" файлів. Використовуйте щось на кшталт експорту TortoiseSVN, щоб уникнути пошкодження прихованих каталогів svn.
Міліметричний

3

Я використовую TortoiseSVN 1.9.3, Build 27038.

Виконайте нижче кроки, щоб об'єднати гілку в стовбур.

1) Клацніть правою кнопкою миші на робочій копії ствола та виберіть наступний варіант.

введіть тут опис зображення

2) У разі об'єднання гілки в магістраль виберіть другий варіант, як показано нижче, та натисніть кнопку Далі

введіть тут опис зображення

3) У поле From: введіть повну URL-адресу папки стовбура. Це може здатися неправильним, але пам’ятайте, що стовбур - це початкова точка, до якої потрібно додати зміни гілки. У поле Кому: введіть повну URL-адресу папки гілки функцій.

введіть тут опис зображення

4) Клацніть далі і зробіть тест злиття

введіть тут опис зображення

5) Якщо тестовий злиття вдалий, натисніть кнопку Злиття.

6) Після того, як злиття пройде успішно, виконайте зміни на магістралі.

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