SVN объединить ствол с веткой - PullRequest
4 голосов
/ 23 февраля 2010

Предположим, следующий сценарий.

У меня есть два файла A.cpp и B.cpp в транке. В ревизии 50 я создаю экспериментальную ветвь с именем X. Поэтому в ревизии 50 и ствол, и ветвь X одинаковы.

Я продолжаю работать над транком и добавляю C.cpp и D.cpp. Затем я понимаю, что в A.cpp есть ошибка, и я исправляю ее.

Теперь мой вопрос: как мне отправить обновленный A.cpp в ветвь X без отправки других файлов (B.cpp C.cpp D.cpp)?

Ответы [ 3 ]

6 голосов
/ 23 февраля 2010

В рабочей копии ветки объедините ревизию, которая обновила A.cpp. Кроме того, если у вас нет изменений локальных веток, которые вам нужно сохранить, вы можете просто svn copy A.cpp из транка и перезаписать ваш локальный A.cpp.

Пример

cd workingCopyOfX
svn merge -r50:51 http://my.repo.com/trunk/A.cpp

при условии, что исправление было сделано в r51

2 голосов
/ 23 февраля 2010

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

Если вы работаете в среде командной строки, вы должны просто запустить svn merge и ввести имя файла.

Более подробную информацию (хотя я считаю, что они все еще актуальны) можно найти здесь

1 голос
/ 23 февраля 2010

Вероятно, есть много способов, но мне проще сделать это следующим образом:

  1. Перейти к новой (неизмененной) рабочей копии цели (X-ветка)
  2. Объединить всю ревизию из источника (транка) в вашу рабочую копию
  3. Проверка локальных изменений: возврат нежелательных измененных файлов и, возможно, внесение некоторых изменений вручную в требуемые файлы
  4. Когда вы счастливы, совершите
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...