Об’єднайте дві версії гілок за допомогою Subversion


95

Я хотів би об’єднати всі зміни, що відбулися між версією 10 та версією HEAD на http: // url-of-branch-a, та застосувати їх до http: // url-of-branch-b .

Щось на зразок...

svn merge -r 10:HEAD http://url-of-branch-a 

Чи можливо це? Якщо так, то що таке синтаксис?

Я запускаю клієнт SVN із командного рядка unix. Версія клієнта SVN - 1.4

EDIT: Так, моє конкретне рішення було ...

  1. змінити каталог на місце моєї робочої копії, яка хоче отримати зміни (branch-b)
  2. svn merge -r 10: HEAD http: // url-of-branch-a

Це об'єднує зміни з 'branch-a' у 'branch-b'


4
Також потрібно знати, коли взяли гілку. Ви можете зробити це (svn log --stop-on-copy.) У своїй гілці, щоб отримати номер редакції, з якого ви розгалужені.
jmc

@jmc, це тобі більше не потрібно з 2008 р., коли вийшов SVN 1.5, AFAIR
bahrep

Відповіді:


55

URL-адреса замовлення A. Використовуйте злиття SVN, щоб об’єднати URL-адресу B з робочою копією A. Здійснити A.

Або навпаки звичайно :)


127

Процес такий:

  1. Створення робочої копії відділення B ( svn checkout http://branch-b)
  2. Об’єднати зміни з гілки A у робочу копію B ( svn merge -r 10:HEAD http://branch-a .)
  3. Зафіксувати (після вирішення конфліктів) робочу копію B до гілки b ( svn commit)

Перевірте сторінку довідки (файл довідки) на наявність семантики злиття svn. Це показує, що svn merge завжди скидає результати в робочу копію.

Перегляньте SVNBook, щоб отримати всі подробиці.


Чи можете ви також дати уявлення про те, як це зробити за допомогою плагіна SVN у eclipse?
Snehal Masne

Це працює для мене: svn merge --force --allow-mixed-revisions -r 10: HEAD branch-a
Minh Nguyen

2
чому ми вказуємо ревізію 10 на HEAD? Чому дві кінцеві точки редакції замість лише однієї редакції використовувати як знімок? до якої гілки відноситься "10 до ГОЛОВИ"?
ahnbizcad

2

Здебільшого плутаючи merge, намагаючись зробити в svn repo, ми не можемо безпосередньо об'єднатися з svn repo, ми можемо об'єднати з робочою копією локальної машини наступним чином:

  • Ця робоча копія повинна бути destination URLоб'єднаною (тобто пунктом призначення замовлення).

  • злиття робочої копії з source URLзлиттям -.

  • commit до місця призначення.

Найкраща практика : об’єднати, об’єднати.

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